如何从任何消费品的图像中检测 text/logo-details?

How to detect text/logo-details from an image of any consumer product?

我正在尝试从其 packaging.For 的图像中检测任何消费品的名称,例如 - Maggie (I want to detect- Maggie happiness is homemade) Kellogg's

我尝试过应用图像预处理(例如侵蚀、打开、关闭等),然后将该预处理图像提供给 pytesseract(OCR)。如果它可以提供任何帮助,我打算使用 Image-Magic 工具。

只对图像进行预处理就足够了吗,如果不够那我该怎么办?(任何代码,软件任何东西)

PS- 我不想使用 Google Vision 或任何类似的东西 API

在 Imagemagick 6 中,您可以执行以下操作来隔离 "kelloggs"。

fill back to replace everything but the red color
fill white to replace the red color

convert kellogg.jpg -fuzz 15% \
-fill black +opaque "rgb(240,0,0)" \
-fill white -opaque "rgb(240,0,0)" \
result.png


对于您的 "maggie" 图片,它有点复杂,因为 "maggie" 的黄色和其他地方的黄色。

fill yellow color to replace the white in the corners
fill yellow color to replace black
floodfill the outside yellow with black
fill black to replace everything but yellow
fill white to replace yellow

convert maggie.jpg \
-fuzz 15% -fill "rgb(254,242,0)" -opaque white \
-fuzz 20% -fill "rgb(254,242,0)" -opaque black \
-fuzz 15% -fill black -draw "color 10,10 floodfill" -alpha off \
-fuzz 15% -fill black +opaque "rgb(254,242,0)" \
-fuzz 15% -fill white -opaque "rgb(254,242,0)" \
result2.png


但是商标还在。因此,为了消除这一点,我们添加了连通分量处理以过滤掉最小的白色区域。

convert maggie.jpg \
-fuzz 15% -fill "rgb(254,242,0)" -opaque white \
-fuzz 20% -fill "rgb(254,242,0)" -opaque black \
-fuzz 15% -fill black -draw "color 10,10 floodfill" -alpha off \
-fuzz 15% -fill black +opaque "rgb(254,242,0)" \
-fuzz 15% -fill white -opaque "rgb(254,242,0)" \
-define connected-components:area-threshold=50 \
-define connected-components:mean-color=true \
-connected-components 4 \
result3.png