Stock-based Compensation - Summary of Stock Option and Warrant Outstanding (Details)
12 Months Ended
Dec. 31, 2019
$ / shares
shares
Exercise Price 0.01-1.40 [Member]  
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Range of Exercise Prices, minimum $ 0.01
Range of Exercise Prices, maximum $ 1.40
Number outstanding | shares 1,855,151
Weighted average remaining contractual life 6 years 8 months 9 days
Weighted average exercise price $ 0.82
Number exercisable | shares 1,328,484
Weighted average exercise price exercisable $ 0.70
Exercise Price 2.00-3.85 [Member]  
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Range of Exercise Prices, minimum 2.00
Range of Exercise Prices, maximum $ 3.85
Number outstanding | shares 1,055,445
Weighted average remaining contractual life 7 years 10 months 14 days
Weighted average exercise price $ 2.54
Number exercisable | shares 772,112
Weighted average exercise price exercisable $ 2.51
Exercise Price 5.61-7.20 [Member]  
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Range of Exercise Prices, minimum 5.61
Range of Exercise Prices, maximum $ 7.20
Number outstanding | shares 94,756
Weighted average remaining contractual life 2 years 4 months 13 days
Weighted average exercise price $ 6.64
Number exercisable | shares 94,756
Weighted average exercise price exercisable $ 6.64
Exercise Price 0.01-7.20 [Member]  
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Range of Exercise Prices, minimum 0.01
Range of Exercise Prices, maximum $ 7.20
Number outstanding | shares 3,005,352
Weighted average remaining contractual life 6 years 11 months 19 days
Weighted average exercise price $ 1.61
Number exercisable | shares 2,195,352
Weighted average exercise price exercisable $ 1.60