Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
lindt:candybox:how_learning_works [2021/03/10 10:07] superuser |
lindt:candybox:how_learning_works [2023/06/05 08:59] (current) superuser |
||
|---|---|---|---|
| Line 6: | Line 6: | ||
| ===== Day 1 ===== | ===== Day 1 ===== | ||
| + | |||
| ==== 1. Annotation ==== | ==== 1. Annotation ==== | ||
| Line 26: | Line 27: | ||
| {{ :lindt:candybox:2.png?nolink |}} | {{ :lindt:candybox:2.png?nolink |}} | ||
| + | |||
| ==== 3. Learning ==== | ==== 3. Learning ==== | ||
| Line 31: | Line 33: | ||
| After dataset is prepared the learning process starts. This takes about 6 hours. All this time i need to monitor the results. If AI learning not correctly i need to interrupt it, correct some parameters and arestart learning process. | After dataset is prepared the learning process starts. This takes about 6 hours. All this time i need to monitor the results. If AI learning not correctly i need to interrupt it, correct some parameters and arestart learning process. | ||
| {{ :lindt:candybox:3.gif?nolink |}} | {{ :lindt:candybox:3.gif?nolink |}} | ||
| + | |||
| ==== 4. Monitoring ==== | ==== 4. Monitoring ==== | ||
| Line 40: | Line 43: | ||
| ===== Day 2 ===== | ===== Day 2 ===== | ||
| + | |||
| ==== 5. Recipe creation ==== | ==== 5. Recipe creation ==== | ||
| Line 48: | Line 52: | ||
| Recipe is created from some sort of template. And in initial stage it's quite 'stupid' and can't even find a blister on image. | Recipe is created from some sort of template. And in initial stage it's quite 'stupid' and can't even find a blister on image. | ||
| {{ :lindt:candybox:5.png?nolink |}} | {{ :lindt:candybox:5.png?nolink |}} | ||
| + | |||
| ==== 6. Configuration ==== | ==== 6. Configuration ==== | ||
| Line 59: | Line 64: | ||
| {{ :lindt:candybox:6.png?nolink |}} | {{ :lindt:candybox:6.png?nolink |}} | ||
| - | ==== 7. Validation ==== | + | ==== 7. Voronoi segmentation ==== |
| + | |||
| + | When two candies are close to each other or touchng AI thinks that this is one single candy. This creates false-positives. To avoid this Voronoi segmentation is used. It puts virtual borders between candies ensuring that touching candies are separate. | ||
| + | |||
| + | {{:lindt:candybox:9.png?400|}} | ||
| + | |||
| + | ==== 8. Color feature classification ==== | ||
| + | |||
| + | Each candy is having different amount of different colors. This makes possible to generate a color combination pattern for each candy type for each candy position. But since each candy type may have variations - we are creating a database which contains several patterns for each candy type. | ||
| + | |||
| + | During analysis each candy is compared against database of patterns expected at specified position. If the distance is close enough - the candy is good. | ||
| + | |||
| + | {{:lindt:candybox:10.png?400|}} | ||
| + | |||
| + | ==== 9. Validation ==== | ||
| Now it's time to test the recipe on good images that it's never seen. They should be all green: | Now it's time to test the recipe on good images that it's never seen. They should be all green: | ||
| {{ :lindt:candybox:7.gif?nolink |}} | {{ :lindt:candybox:7.gif?nolink |}} | ||
| - | ==== 8. Coverage checking ==== | + | |
| + | ==== 10. Coverage checking ==== | ||
| The last step before it's done. On this step i'm checking how confident AI about it's decisions. | The last step before it's done. On this step i'm checking how confident AI about it's decisions. | ||
| This allows to discover if there is possible problems with recognition on the line. | This allows to discover if there is possible problems with recognition on the line. | ||
| {{ :lindt:candybox:8.gif?nolink |}} | {{ :lindt:candybox:8.gif?nolink |}} | ||