World & AI Data Challenge: Premiers pas avec la reconnaissance braille

L'intelligence artificielle et les technologies d'analyse de données entrent de plus en plus rapidement dans nos vies, elles peuvent donner une autre chance de résoudre des problèmes sociaux qui sont vraiment importants pour des personnes qui n'ont pas été implémentées auparavant. A cet effet, le centre de développement numérique ASI a organisé le concours World AI & Data Challenge , dont le but est de structurer le processus de recherche des problèmes sociaux et de leurs solutions. En février 2020, l'équipe du Centre de développement numérique ASI m'a invité à rejoindre les experts de ce concours. Dans cet article, je vais vous parler un peu du concours lui-même, ainsi que de la façon dont vous pouvez commencer à résoudre l'une des tâches intéressantes de ce concours - la reconnaissance du braille . Vous pouvez participer à la résolution de cette tâche et d'autres tâches du concours jusqu'au 31 août 2020.





À propos du concours



, . .



, , . , , . 147 43 , , , . 30 30 , 8 — .



, . 2 . : - , - - , . . — http://git.asi.ru 31 2020 ..



( — 2021 .), . . .



, 1,5 . , 1 Data Science -.





. , , , .



, :



  • ,
  • ,


— , .





, , . , 2017 , GitHub, , — Python ( , , - ). , , . !



, . : Smart Braille System Recognizer (2013), Optical Braille Recognition Based on Semantic Segmentation Network.



, . - , tutorial





, , . , :



Lettres cyrylliques braille



, .



, , - :



  • [ Kaggle][KaggleData], , , . .
  • GitHub , , data augmentation.
  • , . , , .. , , ..


Lettres cyrilliques en braille





, :



  1. /
  2. , ( )
  3. ,
  4. . , , spell checker, , Microsoft.


. , , GitHub https://github.com/shwars/braillehack. — fork! Visual Studio Codespaces





OpenCV. , - :



im = cv2.imread('../data/Photo_Turlom_C1_2.jpeg')
im = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)




, . , , . : — .



, :



im = cv2.blur(im,(3,3))
im = cv2.adaptiveThreshold(im, 255, cv2.ADAPTIVE_THRESH_MEAN_C,
                           cv2.THRESH_BINARY_INV, 5, 4)
im = cv2.medianBlur(im, 3)
_,im = cv2.threshold(im, 0, 255, cv2.THRESH_OTSU)
im = cv2.GaussianBlur(im, (3,3), 0)
_,im = cv2.threshold(im, 0, 255, cv2.THRESH_OTSU)
plt.imshow(im)


:







, , .



.



. feature detectors, OpenCV ORB, :



orb = cv2.ORB_create(5000)
f,d = orb.detectAndCompute(im,None)


5000 — , . , :



def plot_dots(im,dots):
    img = np.zeros_like(im)
    for x in dots:
        cv2.circle(img,(int(x[0]),int(x[1])),1,(255,0,0))
    plt.imshow(img)

pts = [x.pt for x in f]
plot_dots(cim,pts)  






, :



  • . , . , , .
  • .


feature detector , .

: OR- , . , — , .



, ! , - !





, , , ( ) . , . , , . "" , , :



min_x, min_y, max_x, max_y = \
   [int(f([z[i] for z in pts])) 
       for f in (min,max) for i in (0,1)]


(, 500):



off = 5
src_pts = np.array([(min_x-off,min_y-off),(min_x-off,max_y+off),
                    (max_x+off,min_y-off),(max_x+off,max_y+off)])
dim = 500
dst_pts = np.array([(0,0),(0,dim),(dim,0),(dim,dim)])
h,m = cv2.findHomography(src_pts,dst_pts)
trim = cv2.warpPerspective(cim,h,(dim,dim))
plt.imshow(trim)




.





, , .



char_h = 32
char_w = 22
def slice(img):
    dy,dx = img.shape
    y = 0
    while y+char_h<dy:
        x=0
        while x+char_w<dx:
            #    x
            while np.max(img[y:y+char_h,x])!=0:
                x+=1
            while np.max(img[y:y+char_h,x+char_w])!=0:
                x-=1
            #    
            if np.max(img[y:y+char_h,x:x+char_w])>0:
                yield img[y:y+char_h,x:x+char_w]
            x+=char_w
        y+=char_h

sliced = list(slice(trim))


. - , , "" . , - , x. .



, :







, , MNIST, , :



  • Keras/Tensorflow —
  • , PyTorch — , .




, . - , . , - , .



, . , , , . ,

Microsoft, REST-. MVP .





( Python), . , , . (MVP), Microsoft Azure .



:





Python , REST-. -API, . API Azure Function HTTP-.



Azure Function — - ( Python), - ( — REST-). , Python — .



- . !





, , , MVP-. , , .



, , http://github.com/shwars/braillehack. , , " " — , . , - — , http://soshnikov.com.



! , - , , , - .




All Articles