Do Joulies Work?

Reading an image of a LCD display with Image Classification in Mathematica

Justin Pearson

2014-10-26

Summary

Joulies are a product meant to maintain hot coffee at a comfortable temperature longer. They are sealed metal sphereoids that contain a proprietary material that melts at 140°F. The heat of fusion helps maintain the coffee’s temperature. You keep them in your coffee cup and dump your coffee over them. They displace about 1.5 Tbsp per Joulie.

We took two coffee cups, one with 5 Joulies and one without, and filled them with boiling water to roughly the same level. We measured their temperatures with two digital thermometers. We took pictures of the thermometers with two different cameras: Dad’s Leica handheld digital camera was set to “time lapse” and snapped a picture every minute, and my Macbook Pro took a picture about every 10 seconds.

We also had a Raspberry Pi with temperature sensors. However, water leaked into the sensors and corrupted their measurements.

Afterward, Dad manually recorded the temperature of the two thermometers from each of this 30 images.

The Macbook took 180 images. Instead of doing the obvious thing of just looking at the pictures and writing down the temperatures, I used this as an opportunity to test Mathematica’s ability to classify the LCD digits.

Specifically, I wanted to see if Mathematica’s Classify() function could identify the digits on the two LCD thermometers. I found that the classification works well for a single LCD segment (eg the one’s digit) but a classifier trained on the one’s digit doesn’t necessarily do well on the ten’s or hundred’s digits, and a classifier trained for one thermometer doesn’t work on another.

I haven’t answered the main question -- do Joulies work -- but it was fun playing around with various Mathematica image-processing algorithms.

Import pictures

index_1.gif

index_2.gif

index_3.gif

index_4.gif

index_5.gif

index_6.gif

index_7.gif

index_8.gif

index_9.gif

index_10.gif

index_11.gif

index_12.gif

index_13.gif

Ugh, MacBook flips it so the camera looks like a mirror. Correct:

index_14.gif

index_15.gif

index_16.gif

Pic description:
img 48.tiff - both reading room temp - 67deg F
img 54.tiff - begin to pour into ‘joulie’ cup
57 - begin to pour into ‘control’ cup
58 - fog on lens
227 - last pic before ‘control’ therm turns off

Get Digits of ‘Joulie’ cup’s thermometer

Trim

Crop (trim) the image to this bounding box around the Joulie therm LCD:

index_17.gif

index_18.gif

Now we have a trimJoulie() function:

index_19.gif

index_20.gif

Fix Perspective

Undo the skew.

Will a simple rotation work?

index_21.gif

index_22.gif

The digits seem unskewed according to the gridlines, but the edges of the screen still seem skewed.

Manual unskewing with a Perspective Transformation

index_23.gif

index_24.gif

Have Mathematica find a geometric transform to fix the perspective

index_25.gif

index_26.gif

Now we have a fixPerspectiveJoulie() function:

index_27.gif

index_28.gif

index_29.gif

Extract digits from picture

Bounding boxes around three LCD digits:

index_30.gif

index_31.gif

Now we have a getDigitsJoulie() function:

index_32.gif

index_33.gif

Compute all digits

(Note: @* is ‘function compose’)

index_34.gif

index_35.gif

index_36.gif

index_37.gif

index_38.gif index_39.gif index_40.gif
index_41.gif index_42.gif index_43.gif
index_44.gif index_45.gif index_46.gif
index_47.gif index_48.gif index_49.gif
index_50.gif index_51.gif index_52.gif
index_53.gif index_54.gif index_55.gif

Classify digits as integers

First make a training set.

index_56.gif

index_57.gif

Put it on auto-play, watch it and type the numbers as they play (I put my fingers on 1,2,3,4 and 7,8,9,0). Starting at index 15, what’s the least-sig digit?

index_58.gif

Note: Coulda just repeated this for the whole file. But if it was really long, couldn’t.

index_59.gif

index_60.gif

Manually add some mis-classified points

index_61.gif

index_62.gif

index_63.gif

Build classifier

index_64.gif

index_65.gif

How does it work? We trained it mostly on the one’s place LCD segment. Perhaps it will work on the ten’s and hundred’s segments too?

index_66.gif

index_67.gif

One’s place:

index_68.gif

index_69.gif
7
index_70.gif
7
index_71.gif
7
index_72.gif
7
index_73.gif
7
index_74.gif
7
index_75.gif
3
index_76.gif
7
index_77.gif
7
index_78.gif
9
index_79.gif
0
index_80.gif
5
index_81.gif
4
index_82.gif
2
index_83.gif
1
index_84.gif
0
index_85.gif
9
index_86.gif
8
index_87.gif
7
index_88.gif
6
index_89.gif
5
index_90.gif
5
index_91.gif
4
index_92.gif
3
index_93.gif
2
index_94.gif
2
index_95.gif
1
index_96.gif
0
index_97.gif
9
index_98.gif
9
index_99.gif
8
index_100.gif
7
index_101.gif
7
index_102.gif
6
index_103.gif
6
index_104.gif
5
index_105.gif
4
index_106.gif
4
index_107.gif
3
index_108.gif
3
index_109.gif
2
index_110.gif
2
index_111.gif
1
index_112.gif
1
index_113.gif
0
index_114.gif
0
index_115.gif
0
index_116.gif
0
index_117.gif
9
index_118.gif
9
index_119.gif
9
index_120.gif
8
index_121.gif
8
index_122.gif
8
index_123.gif
7
index_124.gif
7
index_125.gif
6
index_126.gif
6
index_127.gif
6
index_128.gif
5
index_129.gif
4
index_130.gif
4
index_131.gif
4
index_132.gif
3
index_133.gif
3
index_134.gif
3
index_135.gif
2
index_136.gif
2
index_137.gif
2
index_138.gif
1
index_139.gif
1
index_140.gif
1
index_141.gif
0
index_142.gif
0
index_143.gif
9
index_144.gif
9
index_145.gif
9
index_146.gif
8
index_147.gif
8
index_148.gif
8
index_149.gif
8
index_150.gif
7
index_151.gif
7
index_152.gif
6
index_153.gif
6
index_154.gif
6
index_155.gif
6
index_156.gif
5
index_157.gif
5
index_158.gif
5
index_159.gif
4
index_160.gif
4
index_161.gif
4
index_162.gif
3
index_163.gif
9
index_164.gif
3
index_165.gif
2
index_166.gif
2
index_167.gif
2
index_168.gif
2
index_169.gif
1
index_170.gif
1
index_171.gif
0
index_172.gif
0
index_173.gif
0
index_174.gif
0
index_175.gif
9
index_176.gif
9
index_177.gif
8
index_178.gif
8
index_179.gif
8
index_180.gif
7
index_181.gif
7
index_182.gif
7
index_183.gif
6
index_184.gif
6
index_185.gif
6
index_186.gif
5
index_187.gif
5
index_188.gif
5
index_189.gif
4
index_190.gif
4
index_191.gif
4
index_192.gif
4
index_193.gif
3
index_194.gif
3
index_195.gif
3
index_196.gif
2
index_197.gif
2
index_198.gif
2
index_199.gif
2
index_200.gif
1
index_201.gif
1
index_202.gif
1
index_203.gif
1
index_204.gif
0
index_205.gif
0
index_206.gif
9
index_207.gif
9
index_208.gif
9
index_209.gif
9
index_210.gif
8
index_211.gif
8
index_212.gif
8
index_213.gif
8
index_214.gif
7
index_215.gif
7
index_216.gif
7
index_217.gif
7
index_218.gif
7
index_219.gif
6
index_220.gif
6
index_221.gif
6
index_222.gif
5
index_223.gif
5
index_224.gif
5
index_225.gif
5
index_226.gif
4
index_227.gif
4
index_228.gif
4
index_229.gif
4
index_230.gif
3
index_231.gif
3
index_232.gif
3
index_233.gif
3
index_234.gif
2
index_235.gif
2
index_236.gif
2
index_237.gif
2
index_238.gif
1
index_239.gif
1
index_240.gif
1
index_241.gif
1
index_242.gif
0
index_243.gif
0
index_244.gif
0
index_245.gif
0
index_246.gif
9
index_247.gif
9
index_248.gif
9

Ten’s place:

index_249.gif

index_250.gif
6
index_251.gif
6
index_252.gif
6
index_253.gif
6
index_254.gif
0
index_255.gif
6
index_256.gif
7
index_257.gif
4
index_258.gif
6
index_259.gif
0
index_260.gif
0
index_261.gif
6
index_262.gif
6
index_263.gif
6
index_264.gif
6
index_265.gif
6
index_266.gif
5
index_267.gif
5
index_268.gif
5
index_269.gif
5
index_270.gif
5
index_271.gif
5
index_272.gif
5
index_273.gif
5
index_274.gif
5
index_275.gif
5
index_276.gif
5
index_277.gif
5
index_278.gif
4
index_279.gif
4
index_280.gif
4
index_281.gif
4
index_282.gif
4
index_283.gif
4
index_284.gif
4
index_285.gif
4
index_286.gif
4
index_287.gif
4
index_288.gif
4
index_289.gif
4
index_290.gif
4
index_291.gif
4
index_292.gif
4
index_293.gif
4
index_294.gif
4
index_295.gif
4
index_296.gif
4
index_297.gif
4
index_298.gif
3
index_299.gif
3
index_300.gif
3
index_301.gif
3
index_302.gif
3
index_303.gif
3
index_304.gif
3
index_305.gif
3
index_306.gif
3
index_307.gif
3
index_308.gif
3
index_309.gif
3
index_310.gif
3
index_311.gif
3
index_312.gif
3
index_313.gif
3
index_314.gif
3
index_315.gif
3
index_316.gif
3
index_317.gif
3
index_318.gif
3
index_319.gif
3
index_320.gif
3
index_321.gif
3
index_322.gif
3
index_323.gif
3
index_324.gif
2
index_325.gif
0
index_326.gif
2
index_327.gif
0
index_328.gif
2
index_329.gif
2
index_330.gif
2
index_331.gif
0
index_332.gif
0
index_333.gif
2
index_334.gif
2
index_335.gif
2
index_336.gif
2
index_337.gif
2
index_338.gif
2
index_339.gif
2
index_340.gif
2
index_341.gif
2
index_342.gif
2
index_343.gif
2
index_344.gif
2
index_345.gif
2
index_346.gif
0
index_347.gif
0
index_348.gif
2
index_349.gif
0
index_350.gif
2
index_351.gif
2
index_352.gif
2
index_353.gif
2
index_354.gif
2
index_355.gif
2
index_356.gif
1
index_357.gif
1
index_358.gif
1
index_359.gif
1
index_360.gif
1
index_361.gif
1
index_362.gif
1
index_363.gif
1
index_364.gif
1
index_365.gif
1
index_366.gif
1
index_367.gif
1
index_368.gif
1
index_369.gif
1
index_370.gif
1
index_371.gif
0
index_372.gif
1
index_373.gif
1
index_374.gif
1
index_375.gif
1
index_376.gif
1
index_377.gif
1
index_378.gif
1
index_379.gif
1
index_380.gif
1
index_381.gif
1
index_382.gif
1
index_383.gif
1
index_384.gif
1
index_385.gif
1
index_386.gif
1
index_387.gif
0
index_388.gif
0
index_389.gif
0
index_390.gif
0
index_391.gif
0
index_392.gif
0
index_393.gif
0
index_394.gif
0
index_395.gif
0
index_396.gif
0
index_397.gif
0
index_398.gif
0
index_399.gif
0
index_400.gif
0
index_401.gif
0
index_402.gif
0
index_403.gif
0
index_404.gif
0
index_405.gif
0
index_406.gif
0
index_407.gif
0
index_408.gif
0
index_409.gif
0
index_410.gif
0
index_411.gif
0
index_412.gif
0
index_413.gif
0
index_414.gif
0
index_415.gif
0
index_416.gif
0
index_417.gif
0
index_418.gif
0
index_419.gif
0
index_420.gif
0
index_421.gif
0
index_422.gif
0
index_423.gif
0
index_424.gif
0
index_425.gif
0
index_426.gif
0
index_427.gif
9
index_428.gif
9
index_429.gif
9

Hundred’s place:

index_430.gif

index_431.gif
0
index_432.gif
0
index_433.gif
0
index_434.gif
0
index_435.gif
0
index_436.gif
0
index_437.gif
0
index_438.gif
1
index_439.gif
1
index_440.gif
1
index_441.gif
1
index_442.gif
1
index_443.gif
1
index_444.gif
1
index_445.gif
1
index_446.gif
1
index_447.gif
1
index_448.gif
1
index_449.gif
1
index_450.gif
1
index_451.gif
1
index_452.gif
1
index_453.gif
1
index_454.gif
1
index_455.gif
1
index_456.gif
1
index_457.gif
1
index_458.gif
1
index_459.gif
1
index_460.gif
1
index_461.gif
1
index_462.gif
1
index_463.gif
1
index_464.gif
1
index_465.gif
1
index_466.gif
1
index_467.gif
1
index_468.gif
1
index_469.gif
1
index_470.gif
1
index_471.gif
1
index_472.gif
1
index_473.gif
1
index_474.gif
1
index_475.gif
1
index_476.gif
1
index_477.gif
1
index_478.gif
1
index_479.gif
1
index_480.gif
1
index_481.gif
1
index_482.gif
1
index_483.gif
1
index_484.gif
1
index_485.gif
1
index_486.gif
1
index_487.gif
1
index_488.gif
1
index_489.gif
1
index_490.gif
1
index_491.gif
1
index_492.gif
1
index_493.gif
1
index_494.gif
1
index_495.gif
1
index_496.gif
1
index_497.gif
1
index_498.gif
1
index_499.gif
1
index_500.gif
1
index_501.gif
1
index_502.gif
1
index_503.gif
1
index_504.gif
1
index_505.gif
1
index_506.gif
1
index_507.gif
1
index_508.gif
7
index_509.gif
1
index_510.gif
1
index_511.gif
1
index_512.gif
1
index_513.gif
1
index_514.gif
1
index_515.gif
1
index_516.gif
1
index_517.gif
1
index_518.gif
1
index_519.gif
1
index_520.gif
1
index_521.gif
1
index_522.gif
1
index_523.gif
1
index_524.gif
1
index_525.gif
1
index_526.gif
1
index_527.gif
1
index_528.gif
1
index_529.gif
1
index_530.gif
7
index_531.gif
1
index_532.gif
1
index_533.gif
1
index_534.gif
1
index_535.gif
1
index_536.gif
1
index_537.gif
1
index_538.gif
1
index_539.gif
1
index_540.gif
1
index_541.gif
1
index_542.gif
0
index_543.gif
1
index_544.gif
1
index_545.gif
0
index_546.gif
1
index_547.gif
1
index_548.gif
0
index_549.gif
0
index_550.gif
0
index_551.gif
1
index_552.gif
1
index_553.gif
1
index_554.gif
1
index_555.gif
1
index_556.gif
1
index_557.gif
1
index_558.gif
1
index_559.gif
1
index_560.gif
1
index_561.gif
1
index_562.gif
1
index_563.gif
1
index_564.gif
1
index_565.gif
1
index_566.gif
1
index_567.gif
1
index_568.gif
1
index_569.gif
1
index_570.gif
1
index_571.gif
1
index_572.gif
1
index_573.gif
1
index_574.gif
1
index_575.gif
1
index_576.gif
1
index_577.gif
1
index_578.gif
1
index_579.gif
1
index_580.gif
1
index_581.gif
1
index_582.gif
1
index_583.gif
1
index_584.gif
1
index_585.gif
1
index_586.gif
1
index_587.gif
1
index_588.gif
1
index_589.gif
1
index_590.gif
1
index_591.gif
1
index_592.gif
1
index_593.gif
1
index_594.gif
1
index_595.gif
0
index_596.gif
1
index_597.gif
1
index_598.gif
1
index_599.gif
1
index_600.gif
1
index_601.gif
1
index_602.gif
1
index_603.gif
1
index_604.gif
1
index_605.gif
1
index_606.gif
1
index_607.gif
1
index_608.gif
0
index_609.gif
0
index_610.gif
0

Tab view:

index_611.gif

Awesome.

index_612.gif

index_613.gif

index_614.gif

index_615.gif

Not bad.

Get Digits of Control thermometer

Repeat the above tweaking for the ‘Control’ thermometer.

Trim

Crop (trim) the image to this bounding box around the Control therm LCD:

index_616.gif

index_617.gif

index_618.gif

index_619.gif

Extract digits from picture

Bounding boxes around three LCD digits:

index_620.gif

index_621.gif

index_622.gif

index_623.gif

Compute all digits

index_624.gif

index_625.gif

Classify digits as integers

index_626.gif

index_627.gif

Put it on auto-play, watch it and write it down. Starting at index 13, what’s the least-sig digit?

index_628.gif

Note: Coulda just repeated this for the whole file. But if it was really long, couldn’t.

index_629.gif

index_630.gif

Build classifier

index_631.gif

index_632.gif

index_633.gif

index_634.gif

Assess classifier

How does it work? We trained it mostly on the one’s place LCD segment. Perhaps it will work on the ten’s and hundred’s segments too?

One’s digit:

index_635.gif

index_636.gif
7
index_637.gif
7
index_638.gif
7
index_639.gif
7
index_640.gif
7
index_641.gif
7
index_642.gif
7
index_643.gif
7
index_644.gif
7
index_645.gif
0
index_646.gif
4
index_647.gif
2
index_648.gif
9
index_649.gif
5
index_650.gif
3
index_651.gif
1
index_652.gif
0
index_653.gif
9
index_654.gif
9
index_655.gif
8
index_656.gif
7
index_657.gif
6
index_658.gif
5
index_659.gif
4
index_660.gif
4
index_661.gif
3
index_662.gif
2
index_663.gif
1
index_664.gif
1
index_665.gif
0
index_666.gif
0
index_667.gif
9
index_668.gif
8
index_669.gif
8
index_670.gif
7
index_671.gif
6
index_672.gif
6
index_673.gif
5
index_674.gif
4
index_675.gif
4
index_676.gif
3
index_677.gif
3
index_678.gif
2
index_679.gif
2
index_680.gif
1
index_681.gif
0
index_682.gif
0
index_683.gif
9
index_684.gif
8
index_685.gif
8
index_686.gif
8
index_687.gif
7
index_688.gif
6
index_689.gif
6
index_690.gif
5
index_691.gif
5
index_692.gif
4
index_693.gif
4
index_694.gif
3
index_695.gif
3
index_696.gif
2
index_697.gif
1
index_698.gif
1
index_699.gif
0
index_700.gif
0
index_701.gif
0
index_702.gif
9
index_703.gif
8
index_704.gif
8
index_705.gif
7
index_706.gif
7
index_707.gif
7
index_708.gif
6
index_709.gif
5
index_710.gif
5
index_711.gif
4
index_712.gif
4
index_713.gif
4
index_714.gif
3
index_715.gif
2
index_716.gif
2
index_717.gif
2
index_718.gif
1
index_719.gif
0
index_720.gif
0
index_721.gif
0
index_722.gif
9
index_723.gif
9
index_724.gif
8
index_725.gif
8
index_726.gif
8
index_727.gif
7
index_728.gif
7
index_729.gif
6
index_730.gif
6
index_731.gif
5
index_732.gif
5
index_733.gif
5
index_734.gif
4
index_735.gif
4
index_736.gif
3
index_737.gif
3
index_738.gif
2
index_739.gif
2
index_740.gif
1
index_741.gif
1
index_742.gif
1
index_743.gif
0
index_744.gif
0
index_745.gif
9
index_746.gif
9
index_747.gif
8
index_748.gif
8
index_749.gif
7
index_750.gif
7
index_751.gif
7
index_752.gif
6
index_753.gif
6
index_754.gif
5
index_755.gif
5
index_756.gif
5
index_757.gif
4
index_758.gif
4
index_759.gif
4
index_760.gif
3
index_761.gif
3
index_762.gif
2
index_763.gif
2
index_764.gif
2
index_765.gif
0
index_766.gif
0
index_767.gif
0
index_768.gif
0
index_769.gif
0
index_770.gif
9
index_771.gif
9
index_772.gif
9
index_773.gif
8
index_774.gif
8
index_775.gif
8
index_776.gif
7
index_777.gif
7
index_778.gif
7
index_779.gif
7
index_780.gif
4
index_781.gif
6
index_782.gif
5
index_783.gif
5
index_784.gif
5
index_785.gif
5
index_786.gif
4
index_787.gif
4
index_788.gif
3
index_789.gif
3
index_790.gif
3
index_791.gif
3
index_792.gif
2
index_793.gif
2
index_794.gif
2
index_795.gif
1
index_796.gif
1
index_797.gif
1
index_798.gif
0
index_799.gif
0
index_800.gif
4
index_801.gif
9
index_802.gif
9
index_803.gif
9
index_804.gif
9
index_805.gif
8
index_806.gif
8
index_807.gif
8
index_808.gif
8
index_809.gif
7
index_810.gif
7
index_811.gif
7
index_812.gif
6
index_813.gif
6
index_814.gif
6
index_815.gif
6

Seems pretty good!

Ten’s digit:

index_816.gif

index_817.gif
4
index_818.gif
4
index_819.gif
4
index_820.gif
4
index_821.gif
4
index_822.gif
4
index_823.gif
4
index_824.gif
4
index_825.gif
4
index_826.gif
4
index_827.gif
4
index_828.gif
4
index_829.gif
4
index_830.gif
4
index_831.gif
4
index_832.gif
4
index_833.gif
4
index_834.gif
4
index_835.gif
4
index_836.gif
4
index_837.gif
4
index_838.gif
4
index_839.gif
4
index_840.gif
4
index_841.gif
4
index_842.gif
4
index_843.gif
4
index_844.gif
4
index_845.gif
4
index_846.gif
4
index_847.gif
4
index_848.gif
4
index_849.gif
4
index_850.gif
4
index_851.gif
4
index_852.gif
4
index_853.gif
4
index_854.gif
4
index_855.gif
4
index_856.gif
4
index_857.gif
4
index_858.gif
4
index_859.gif
4
index_860.gif
4
index_861.gif
4
index_862.gif
4
index_863.gif
4
index_864.gif
4
index_865.gif
4
index_866.gif
4
index_867.gif
4
index_868.gif
4
index_869.gif
4
index_870.gif
4
index_871.gif
4
index_872.gif
4
index_873.gif
4
index_874.gif
4
index_875.gif
4
index_876.gif
4
index_877.gif
4
index_878.gif
4
index_879.gif
4
index_880.gif
4
index_881.gif
4
index_882.gif
4
index_883.gif
4
index_884.gif
4
index_885.gif
4
index_886.gif
4
index_887.gif
4
index_888.gif
4
index_889.gif
4
index_890.gif
4
index_891.gif
4
index_892.gif
4
index_893.gif
4
index_894.gif
4
index_895.gif
4
index_896.gif
4
index_897.gif
4
index_898.gif
4
index_899.gif
4
index_900.gif
4
index_901.gif
4
index_902.gif
4
index_903.gif
4
index_904.gif
4
index_905.gif
4
index_906.gif
4
index_907.gif
4
index_908.gif
4
index_909.gif
4
index_910.gif
4
index_911.gif
4
index_912.gif
4
index_913.gif
4
index_914.gif
4
index_915.gif
4
index_916.gif
4
index_917.gif
4
index_918.gif
4
index_919.gif
4
index_920.gif
4
index_921.gif
4
index_922.gif
4
index_923.gif
4
index_924.gif
4
index_925.gif
4
index_926.gif
4
index_927.gif
4
index_928.gif
4
index_929.gif
4
index_930.gif
4
index_931.gif
4
index_932.gif
4
index_933.gif
4
index_934.gif
4
index_935.gif
4
index_936.gif
4
index_937.gif
4
index_938.gif
4
index_939.gif
4
index_940.gif
4
index_941.gif
4
index_942.gif
4
index_943.gif
4
index_944.gif
4
index_945.gif
4
index_946.gif
4
index_947.gif
4
index_948.gif
4
index_949.gif
4
index_950.gif
4
index_951.gif
4
index_952.gif
4
index_953.gif
4
index_954.gif
4
index_955.gif
4
index_956.gif
4
index_957.gif
4
index_958.gif
4
index_959.gif
4
index_960.gif
4
index_961.gif
4
index_962.gif
4
index_963.gif
4
index_964.gif
4
index_965.gif
4
index_966.gif
4
index_967.gif
4
index_968.gif
4
index_969.gif
4
index_970.gif
4
index_971.gif
4
index_972.gif
4
index_973.gif
4
index_974.gif
4
index_975.gif
4
index_976.gif
4
index_977.gif
4
index_978.gif
4
index_979.gif
4
index_980.gif
4
index_981.gif
4
index_982.gif
4
index_983.gif
4
index_984.gif
4
index_985.gif
4
index_986.gif
4
index_987.gif
4
index_988.gif
4
index_989.gif
4
index_990.gif
4
index_991.gif
4
index_992.gif
4
index_993.gif
4
index_994.gif
4
index_995.gif
4
index_996.gif
4

Not great.

Hundred’s digit:

index_997.gif

index_998.gif
4
index_999.gif
4
index_1000.gif
4
index_1001.gif
4
index_1002.gif
4
index_1003.gif
4
index_1004.gif
4
index_1005.gif
4
index_1006.gif
4
index_1007.gif
4
index_1008.gif
4
index_1009.gif
4
index_1010.gif
4
index_1011.gif
4
index_1012.gif
4
index_1013.gif
4
index_1014.gif
4
index_1015.gif
4
index_1016.gif
4
index_1017.gif
4
index_1018.gif
4
index_1019.gif
4
index_1020.gif
4
index_1021.gif
4
index_1022.gif
4
index_1023.gif
4
index_1024.gif
4
index_1025.gif
4
index_1026.gif
4
index_1027.gif
4
index_1028.gif
4
index_1029.gif
4
index_1030.gif
4
index_1031.gif
4
index_1032.gif
4
index_1033.gif
4
index_1034.gif
4
index_1035.gif
4
index_1036.gif
4
index_1037.gif
4
index_1038.gif
4
index_1039.gif
4
index_1040.gif
4
index_1041.gif
4
index_1042.gif
4
index_1043.gif
4
index_1044.gif
4
index_1045.gif
4
index_1046.gif
4
index_1047.gif
4
index_1048.gif
4
index_1049.gif
4
index_1050.gif
4
index_1051.gif
4
index_1052.gif
4
index_1053.gif
4
index_1054.gif
4
index_1055.gif
4
index_1056.gif
4
index_1057.gif
4
index_1058.gif
4
index_1059.gif
4
index_1060.gif
4
index_1061.gif
4
index_1062.gif
4
index_1063.gif
4
index_1064.gif
4
index_1065.gif
4
index_1066.gif
4
index_1067.gif
4
index_1068.gif
4
index_1069.gif
4
index_1070.gif
4
index_1071.gif
4
index_1072.gif
4
index_1073.gif
4
index_1074.gif
4
index_1075.gif
4
index_1076.gif
4
index_1077.gif
4
index_1078.gif
4
index_1079.gif
4
index_1080.gif
4
index_1081.gif
4
index_1082.gif
4
index_1083.gif
4
index_1084.gif
4
index_1085.gif
4
index_1086.gif
4
index_1087.gif
4
index_1088.gif
4
index_1089.gif
4
index_1090.gif
4
index_1091.gif
4
index_1092.gif
4
index_1093.gif
4
index_1094.gif
4
index_1095.gif
4
index_1096.gif
4
index_1097.gif
4
index_1098.gif
4
index_1099.gif
4
index_1100.gif
4
index_1101.gif
4
index_1102.gif
4
index_1103.gif
4
index_1104.gif
4
index_1105.gif
4
index_1106.gif
4
index_1107.gif
4
index_1108.gif
4
index_1109.gif
4
index_1110.gif
4
index_1111.gif
4
index_1112.gif
4
index_1113.gif
4
index_1114.gif
4
index_1115.gif
4
index_1116.gif
4
index_1117.gif
4
index_1118.gif
4
index_1119.gif
4
index_1120.gif
4
index_1121.gif
4
index_1122.gif
4
index_1123.gif
4
index_1124.gif
4
index_1125.gif
4
index_1126.gif
4
index_1127.gif
4
index_1128.gif
4
index_1129.gif
4
index_1130.gif
4
index_1131.gif
4
index_1132.gif
4
index_1133.gif
4
index_1134.gif
4
index_1135.gif
4
index_1136.gif
4
index_1137.gif
4
index_1138.gif
4
index_1139.gif
4
index_1140.gif
4
index_1141.gif
4
index_1142.gif
4
index_1143.gif
4
index_1144.gif
4
index_1145.gif
4
index_1146.gif
4
index_1147.gif
4
index_1148.gif
4
index_1149.gif
4
index_1150.gif
4
index_1151.gif
4
index_1152.gif
4
index_1153.gif
4
index_1154.gif
4
index_1155.gif
4
index_1156.gif
4
index_1157.gif
4
index_1158.gif
4
index_1159.gif
4
index_1160.gif
4
index_1161.gif
4
index_1162.gif
4
index_1163.gif
4
index_1164.gif
4
index_1165.gif
4
index_1166.gif
4
index_1167.gif
4
index_1168.gif
4
index_1169.gif
4
index_1170.gif
4
index_1171.gif
4
index_1172.gif
4
index_1173.gif
4
index_1174.gif
4
index_1175.gif
4
index_1176.gif
4
index_1177.gif
4

index_1178.gif

index_1179.gif

index_1180.gif

Since it gets so many of the tens’ and hundred’s wrong, let’s input them manually.

Manually find the hundreds’ and tens’ digits

The above classification is very sensitive to brightness of the images. The classifier was trained from the one’s digit, and sometimes it doesn’t do very well on the ten’s or hundred’s digits. Since the hundred’s and ten’s place doesn’t change very quickly, it’s not much trouble to just write them down manually.

index_1181.gif

index_1182.gif

The format x,y→z means: frames y thru z display digit x.

index_1183.gif

Ten’s place:

index_1184.gif

Hundred’s place:

index_1185.gif

index_1186.gif

index_1187.gif

Future work: Another workaround: use the one’s digit 0->9 transition to tell when the ten’s digit should change

The one’s digit is well-classified after it stops bonking around after index 15 or so. So let’s just enter manually for 1-15 and then rely on the one’s digit to tell us when it’s changing:

Plot results

index_1188.gif

index_1189.gif

Import Dad’s data

index_1190.gif

index_1191.gif

index_1192.gif

index_1193.gif

index_1194.gif

I shifted dad’s time axes to get it to line up:

index_1195.gif

Plot all data

index_1196.gif

index_1197.gif

index_1198.gif

index_1199.gif

Future work: Calculate efficiency

JPP: I think we still need to know how much water was in each of the cups. . . . Dad can measure the volume of his mugs.

Dad: Up to the water level visible in the Joulie-filled cup is 276 ml, give or take about 5%.

Spence: The Joulie information packet says: “0.75oz/1.5Tbsp displaced per Joulie; 4oz/118mL regulated per Joulie.”

index_1200.gif

index_1201.gif

Specific heat of water:

TODO: more on this.

Created with the Wolfram Language