Phép tính convolution

Một phần của tài liệu Thiết kế và xây dựng hệ thống đếm bao tự động với kích thước bao khác nhau dùng công nghệ xử lý ảnh (Trang 34)

Kernel

 Kernel là m t ma tr n vuông kích th c k*k trong đó k là s l , k có th là 1, 3, 5, 7, 9,...

 Ví d kernel kích th c 3*3: W =  Ma tr n nh xám X kích th c 5x6:

 Kí hi u phép tính convolution ( ), kí hi u Y = X W

 V i m i ph n t xij trong ma tr n X l y ra m t ma tr n có kích th c b ng kích th c c a kernel W có ph n t xij làm trung tâm (đây là vì sao kích th c c a kernel th ng l ) g i là ma tr n A. Sau đó tính t ng các ph n t c a phép tính element-wise c a ma tr n A và ma tr n W, r i vi t vào ma tr n k t qu Y kích th c 4x5

LU N V N TH C S

21 1x1 + 6x0 + 7x1 + 3x1 + 3x5 + 6x1 + 3x0 + 3x1 + 5x2 = 45

Hình 2. 12: Mô t thu t toán Kernel

Padding

 Padding = k ngh a là thêm k vector 0 vào m i phía (trên, d i, trái, ph i) c a ma tr n.

LU N V N TH C S

22  Nh ta, nêu th c hi n phép tính nh trên thì giá tr ngoài vi n s b m t đi

và ma tr n Y không còn gi đ c kích th c c a X.

 Gi ta mu n ma tr n Y thu đ c có kích th c b ng ma tr n X và không làm m t đi thông tin c a các giá tr ngoài vi n => thêm các giá tr 0 vào khi th c hi n phép tính.

Padding = 1

 Nh v y ta đã gi i quy t đ c v n đ tìm A cho ph n t x11, và ma tr n Y kích th c 5x6 thu đ c s b ng kích th c ma tr n X ban đ u.

Hình 2. 13: Mô t thu t toán padding

LU N V N TH C S

23

Hình 2. 14: Mô t thu t toán t ng kích th c ma tr n

Stride

 Stride = k (k > 1) thì ta ch th c hi n phép tính convolution trên các ph n t x1+i k;1+j k

 Tr ng h p trên: stride = 1(b c nh y), padding = 1

LU N V N TH C S

24  Tr ng h p trên: stride = 2 (b c nh y), padding = 1 nh sau:

Hình 2. 16: Mô t thu t toán v i giá tr Stride =2, padding =1

Convolution

 M i kernel khác nhau s có ý ngh a khác nhau ph thu c vào các giá tr trong kernel mà ta có th trích xu t đ c đ c tr ng c a nh, tìm c nh, làm m …  Gi nguyên nh:

LU N V N TH C S

25  Kernel phát hi n c nh:

Hình 2. 18: nh sau khi x lý thu t toán kernel

 Làm m - tính giá trung bình c a m t vùng:

Hình 2. 19: nh đã dùng thu t toán làm m

 Tùy vào m c đích thì giá tr c a kernel s khác nhau.

e. M ng th n kinh tích ch p (Convolutional neural network) [9]

Convolutional layer

 Fully connected neural network (FCN) là mô hình m i node trong hidden layer đ c k t n i v i t t c các node trong layer tr c.

LU N V N TH C S

26  Gi s nh đ u vào có kích th c 16x16x3 (RGB), đ bi u th h t n i dung c a b c nh thì c n truy n vào input layer t t c các pixel (16x16x3 = 768). T c là input layer có 768 (nodes) đ u vào.

 nh màu có t i 3 channels red, green, blue nên khi bi u di n nh d i d ng tensor 3 chi u (tensor ch d li u có li u l n h n 2). Nên ta c ng s đ nh ngh a kernel là 1 tensor 3 chi u kích th c k*k*3.

Hình 2. 20: Mô t tensor 3 chi u kích th c

 Ta đ nh ngh a kernel có cùng đ sâu (depth) v i bi u di n nh, r i sau đó th c hi n di chuy n kh i kernel t ng t nh khi th c hi n trên nh xám. Convolutional layer t ng quát

 Gi s input c a 1 convolutional layer t ng quát là tensor kích th c H * W * D.

 Kernel có kích th c F * F * D (kernel luôn có depth b ng depth c a input và F là s l ), stride: S, padding: P.

 Convolutional layer áp d ng K kernel.

LU N V N TH C S

27  Output c a convolutional layer s qua hàm activation function (non-linear:

phi tuy n) tr c khi tr thành input c a convolutional layer ti p theo

 T ng s parameter c a layer: M i kernel có kích th c F*F*D và có 1 h s bias, nên t ng parameter c a 1 kernel là F*F*D + 1. Mà convolutional layer áp d ng K kernel => T ng s parameter trong layer này là K * (F*F*D + 1)

Hình 2. 21: Convolutional layer

Pooling layer

 Pooling layer th ng đ c dùng gi a các convolutional layer, đ gi m kích th c d li u nh ng v n gi đ c các thu c tính quan tr ng. Vi c gi m kích th c d li u giúp gi m các phép tính toán trong model.

LU N V N TH C S

28  G i pooling size kích th c K*K. Input c a pooling layer có kích th c H*W*D, ta tách ra làm D ma tr n kích th c H*W. V i m i ma tr n, trên vùng kích th c K*K trên ma tr n ta tìm maximum ho c average c a d li u r i vi t vào ma tr n k t qu . Quy t c v stride và padding áp d ng nh phép tính convolution trên nh.

 V i pooling size = 2x2, l y giá tr max, Padding = 0, stride = 2.

 Khi đó output có width và height c a d li u gi m đi m t n a, depth thì đ c gi nguyên.

Hình 2. 22: Hình nh sau khi pooling size

Hàm activation

 Output c a convolutional layer s qua hàm activation function (non-linear: phi tuy n) tr c khi tr thành input c a convolutional layer ti p theo.

LU N V N TH C S

29 Sigmoid activation function

 Hàm này tr giá tr trong kho ng (0, 1)

Hình 2. 23: th hàm Sigmoid activation [10]

Tanh activation function

 Hàm này tr giá tr trong kho ng (-1, 1)

Hình 2. 24: th hàm Tanh activation [11]

ReLU activation function

 Hàm relu (rectified linear unit): y = max(0;x)

 Tuy nhiên v i các node có giá tr nh h n 0, qua ReLU activation s thành 0, hi n t ng đ y g i là "Dying ReLU". N u các node b chuy n thành 0 thì

LU N V N TH C S

30 s không có ý ngh a v i b c linear activation l p ti p theo và các h s t ng ng t node đ y c ng không đ c c p nh t v i gradient descent

Hình 2. 25: th hàm Dying ReLU

Leaky ReLU

 Hàm Leaky ReLU có các đi m t t c a hàm ReLU và gi i quy t đ c v n đ Dying ReLU b ng cách xét m t đ d c nh cho các giá tr âm thay vì đ giá tr là 0.

Hình 2. 26: th hàm Leaky ReLU [12]

f. Gi i thi u v YOLO [13]

Yêu c u c a bài toán là phát hi n và phân lo i đ i t ng v i th i gian th c (realtime) trên các thi t b y u và trung bình.

LU N V N TH C S

31 Object Detection là m t bài toán quan tr ng trong l nh v c Computer Vision, thu t toán Object Detection đ c chia thành 2 nhóm chính:

 H các mô hình RCNN (Region-Based Convolutional Neural Networks) đ gi i quy t các bài toán v đ nh v và nh n di n v t th .

 H các mô hình v YOLO (You Only Look Once) dùng đ nh n d ng đ i t ng đ c thi t k đ nh n di n các v t th real-time.

Yolo là m t mô hình m ng th n kinh tích ch p (CNN) cho vi c phát hi n, nh n d ng, phân lo i đ i t ng. Yolo đ c t o ra t vi c k t h p gi a các convolutional layers và connected layers. Trong đóp các convolutional layers s trích xu t ra các feature c a nh, còn full-connected layers s d đoán ra xác su t đó và t a đ c a đ i t ng.

X lý d li u

 T o bounding box bao quanh đ i t ng và l u d li u d i d ng text và thông tin m i object đ c l u vào m t dòng và đ c chu n hóa v [0, 1] so v i tâm c a bounding box d i d ng: <object-class> <xcenter> <ycenter> <width> <height> Trong đó: <object-class> là s th t c a class xu t phát t 0 đ n (s _class-1)

<xcenter> = , <ycenter> = < width > = , < height > =

V i <xcenter> , <ycenter> là tâm c a bounding box và n m trong kho ng [0, 1]. < width >,< height > là chi u r ng, chi u cao bounding box và n m trong kho ng [0, 1].

LU N V N TH C S

32

Hình 2. 27: T o bounding quanh đ i t ng

Hình 2. 28: Kích th c bounding đ i t ng

LU N V N TH C S

33  Khi d li u đ c chu n hóa v d ng này thì bounding box s không thay đ i

khi nh b resize đ đ a vào mô hình tính toán. Cách th c ho t đ ng c a YOLO

 u vào c a mô hình là m t nh, mô hình s nh n d ng nh đó có đ i t ng nào hay không, sau đó s xác đ nh t a đ c a đ i t ng trong b c nh. nh đ u vào đ c chia thành thành S×S ô vuông th ng thì s là 3×3, 7×7, 9×9... vi c chia ô này có nh h ng t i vi c mô hình phát hi n đ i t ng. Kích th c c a nh đ u vào ph i là b i s c a grid size.

 Tâm c a đ i t ng c n xác đ nh n m trong ô vuông nào thì ô vuông đó ch a đ i t ng đó. L u ý, cho dù ph n nh c a object có n m ô vuông khác mà tâm không thu c ô vuông đó thì v n không tính là ch a object. Ngoài ra, n u có nhi u tâm n m trong m t ô vuông thì chúng ta v n ch gán m t nhãn cho ô vuông đó thôi. Chính ràng bu c m i ô vuông ch ch a m t đ i t ng là nh c đi m c a mô hình này.

 M i ô vuông ch u trách nhi m d đoán 2 boundary box c a đ i t ng. M i boundary box d đoán có ch a object hay không và thông tin v trí c a boundary box g m trung tâm boundary box c a đ i t ng và chi u dài, r ng c a boundary box đó.

LU N V N TH C S

34  V i Input là 1 nh, đ u ra mô hình là m t ma tr n 3 chi u có kích th c:

SxSx(5* N+ M).  Trong đó:

SxS là s ô vuông chia nh đ u vào.

5*N là d đoán m i bounding box g m 5 thành ph n : (x, y, w, h, prediction) v i (x, y ) là t a đ tâm c a bounding box, (w, h) l n l t là chi u r ng và chi u cao c a bounding box.

M là s class.

 Prediction đ c đ nh ngh a truth)Pr(Object) IOU(pred,truth), (x, y, w, h) đã đ c chu n hóa trong kho ng [0, 1].

Mô hình và ki n trúc m ng th n kinh tích ch p (CNN) c b n Name Filters Output Dimension Conv 1 7 x 7 x 64, stride=2 224 x 224 x 64 Max Pool 1 2 x 2, stride=2 112 x 112 x 64

Conv 2 3 x 3 x 192 112 x 112 x 192

Max Pool 2 2 x 2, stride=2 56 x 56 x 192

Conv 3 1 x 1 x 128 56 x 56 x 128

Conv 4 3 x 3 x 256 56 x 56 x 256

Conv 5 1 x 1 x 256 56 x 56 x 256

Conv 6 1 x 1 x 512 56 x 56 x 512

Max Pool 3 2 x 2, stride=2 28 x 28 x 512

Conv 7 1 x 1 x 256 28 x 28 x 256 Conv 8 3 x 3 x 512 28 x 28 x 512 Conv 9 1 x 1 x 256 28 x 28 x 256 Conv 10 3 x 3 x 512 28 x 28 x 512 Conv 11 1 x 1 x 256 28 x 28 x 256 Conv 12 3 x 3 x 512 28 x 28 x 512

LU N V N TH C S

35 Name Filters Output Dimension

Conv 13 1 x 1 x 256 28x 28 x 256

Conv 14 3 x 3 x 512 28 x 28 x 512

Conv 15 1 x 1 x 512 28 x 28 x 512

Conv 16 3 x 3 x 1024 28 x 28 x 1024

Max Pool 4 2 x 2, stride=2 14 x 14 x 1024

Conv 17 1 x 1 x 512 14 x 14 x 512 Conv 18 3 x 3 x 1024 14 x 14 x 1024 Conv 19 1 x 1 x 512 14 x 14 x 512 Conv 20 3 x 3 x 1024 14 x 14 x 1024 Conv 21 3 x 3 x 1024 14 x 14 x 1024 Conv 22 3 x 3 x 1024, stride=2 7 x 7 x 1024 Conv 23 3 x 3 x 1024 7 x 7 x 1024 Conv 27 3 x 3 x 1024 7 x 7 x 1024 FC 1 - 4096 FC 2 - 7 x 7 x 30 (1470) Hình 2. 30: Minh h a phát hi n v t th b ng ph ng pháp YOLO [13]

LU N V N TH C S

36

Hình 2. 31: Ki n trúc CNN trong x lý nh

Hàm tính IOU

 Nh đã đ c p trên, prediction đ c đ nh ngh a b ng Pr(Object) IOU(pred,truth). IOU (INTERSECTION OVER UNION) là hàm đánh giá đ chính xác c a object detector trên t p d li u c th . IOU đ c tính b ng:

 Trong đó Area of Overlap là di n tích ph n giao nhau gi a predicted bounding box v i grouth-truth bouding box, còn Area of Union là di n tích ph n h p gi a predicted bounding box v i grouth-truth bounding box. Nh ng bounding box đ c đánh nhãn b ng tay trong t p traing set và test set. N u IOU > 0.5 thì prediction đ c đánh giá là t t.

LU N V N TH C S

37 Hàm l i trong YOLO

 Hàm l i trong YOLO đ c tính trên vi c d đoán và nhãn mô hình đ tính. C th h n nó là t ng đ l i c a 3 thành ph n con sau:

l i c a vi c d đoán lo i nhãn c a object - Classifycation loss

l i c a d đoán t a đ tâm, chi u dài, r ng c a boundary box (x, y ,w, h) - Localization loss

l i c a vi c d đoán bounding box đó ch a object so v i nhãn th c t t i ô vuông đó - Confidence los

l i (Classifycation loss)

Classifycation loss - đ l i c a vi c d đoán lo i nhãn c a object, hàm l i này ch tính trên nh ng ô vuông có xu t hi n object, còn nh ng ô vuông khác ta không quan tâm. Classifycation loss đ c tính b ng công th c sau:

 Trong đó:

: B ng 1 n u ô vuông đang xét có objectL ng c l i b ng 0.

Pi(c): Là xác su t có đi u c a l p c t i ô vuông t ng ng mà mô hình d đoán. V trí l i (Localization loss)

 Localization loss là hàm l i dùng đ tính giá tr l i cho boundary box đ c d đoán bao g m t a đ tâm, chi u r ng, chi u cao c a so v i v trí th c t t d li u hu n luy n c a mô hình.

 

LU N V N TH C S

38  Giá tr hàm Localization loss đ c tính trên t ng giá tr l i d đoán to đ tâm (x, y) và (w, h) c a predicted bounding box v i grouth-truth bounding box. T i m i ô có ch a object, ta ch n 1 boundary box có IOU (Intersect over union) t t nh t, r i sau đó tính đ l i theo các boundary box này.

 Giá tr hàm l i d đoán t a đ tâm (x, y) c a predicted bounding box và (x, ) là t a đ tâm c a truth bounding box đ c tính nh sau:

 Giá tr hàm l i d đoán (w, h) c a predicted bounding box so v i truth bounding box đ c tính nh sau:

l i d đoán (Confidence loss)

 Confidence loss là đ l i gi a d đoán boundary box đó ch a object so v i nhãn th c t t i ô vuông đó. l i này tính trên c nh ng ô vuông ch a object và không ch a object.

T ng l i (Total loss): Ltotal = L classifycation + L localization + L confidence

2.2 NGÔN NG L P TRÌNH PYTHON

2.2.1 Các khái ni m c b n và cài đ t Python

LU N V N TH C S

39 Python là m t ngôn ng l p trình b c cao cho các m c đích l p trình đa n ng, do Guido Van Rossum t o ra và l n đ u ra m t vào n m 1991. Python đ c thi t k v i u đi m m nh là d đ c, d h c và d nh .

Python là ngôn ng có hình th c r t sáng s a, c u trúc rõ ràng, thu n ti n cho ng i m i h c l p trình và là ngôn ng l p trình d h c; đ c dùng r ng rãi trong phát tri n trí tu nhân t o. C u trúc c a Python còn cho phép ng i s d ng vi t mã l nh v i s l n gõ phím t i thi u.

Ban đ u, Python đ c phát tri n đ ch y trên n n Unix. Theo th i gian, Python d n m r ng sang m i h đi u hành t MS-DOS đ n Mac OS, OS/2, Windows, Linux và các h đi u hành khác thu c h Unix. M c dù s phát tri n c a Python có s đóng góp c a r t nhi u cá nhân, nh ng Guido van Rossum

Một phần của tài liệu Thiết kế và xây dựng hệ thống đếm bao tự động với kích thước bao khác nhau dùng công nghệ xử lý ảnh (Trang 34)

Tải bản đầy đủ (PDF)

(108 trang)