+ All Categories
Home > Documents > daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu...

daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu...

Date post: 08-Dec-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
56
ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI: ỨNG DỤNG CHẤM ĐIỂM PHIẾU ĐIỀN TRẮC NGHIỆM. Sinh viên thực hiện : TẠ CHÍ HẬU – MSSV:17IT007 Lớp : 17IT1 Giảng viên hướng dẫn : THS. NGUYỄN VĂN BÌNH
Transcript
Page 1: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

Đ I H C ĐÀ N NGẠ Ọ ẴKHOA CÔNG NGH THÔNG TIN VÀ TRUY N THÔNGỆ Ề

Đ ÁN C S 5Ồ Ơ ỞĐ TÀI: NG D NG CH M ĐI M Ề Ứ Ụ Ấ Ể

PHI U ĐI N TR C NGHI MẾ Ề Ắ Ệ .

Sinh viên th c hi nự ệ : T CHÍ H U – MSSV:17IT007Ạ ẬL pớ : 17IT1

Gi ng viên h ng d nả ướ ẫ : THS. NGUY N VĂN BÌNHỄ

Đà n ng, tháng 07 năm 2020ẵ

Page 2: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

Đ I H C ĐÀ N NGẠ Ọ ẴKHOA CÔNG NGH THÔNG TIN VÀ TRUY N THÔNGỆ Ề

Đ ÁN C S 5Ồ Ơ ỞNG D NG CH M ĐI M PHI U ĐI N TR C NGHI MỨ Ụ Ấ Ể Ế Ề Ắ Ệ

Đà N ng, tháng 07 năm 2020 ẵ

Page 3: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

M Đ UỞ Ầ

Trí tu nhân t o (Artifical Intelligent) hay h c máy (Machine Learning) làệ ạ ọ m t lĩnh v c đang đ c nh c đ n khá nhi u trong th i gian g n đây b i tính ngộ ự ượ ắ ế ề ờ ầ ở ứ d ng c a nó trong th c ti n. Có r t nhi u ng d ng c a 2 công ngh này đã đ cụ ủ ự ễ ấ ề ứ ụ ủ ệ ượ áp d ng vào cu c s ng h ng ngày nh : google d ch, xe t hành, h th ng g i ý muaụ ộ ố ằ ư ị ự ệ ố ợ hàng, h th ng nh n di n khuôn m t….ệ ố ậ ệ ặ

th k XXI v i nh ng thay đ i to l n v công ngh đã m đ u cho m t kỞ ế ỷ ớ ữ ổ ớ ề ệ ở ầ ộ ỷ nguyên m i – k nguyên c a m t xã h i thông tin, m t n n kinh t tri th c… Vàớ ỷ ủ ộ ộ ộ ề ế ứ m ng giáo d c đào t o đ c coi là y u t quy t đ nh thúc đ y đ t n c đi nhanhả ụ ạ ượ ế ố ế ị ẩ ấ ướ vào n n kinh t tri th c – m t xu h ng phát tri n m i c a th gi i. ề ế ứ ộ ướ ể ớ ủ ế ớ

Hi n nay, nhi u hình th c ki m tra đ c áp d ng t ki m tra mi ng, v nệ ề ứ ể ượ ụ ừ ể ệ ấ đáp, ki m tra vi t, ki m tra tr c nghi m, bài t p l n, ti u lu n, lu n văn… Trong đóể ế ể ắ ệ ậ ớ ể ậ ậ hình th c ki m tra tr c nghi m đang tr thành xu h ng b i tính khách quanứ ể ắ ệ ở ướ ở (không ph thu c vào ng i ch m). Tuy nhiên đ ch m m t s l ng l n bài thiụ ộ ườ ấ ể ấ ộ ố ượ ớ tr c nghi m đôi khi l i là m t công vi c không h đ n gi n th m chí còn là m tắ ệ ạ ộ ệ ề ơ ả ậ ộ chu i công vi c c c kỳ căng th ng, tiêu t n nhi u th i gian cũng nh công s c.ỗ ệ ự ẳ ố ề ờ ư ứ

Nh n th y đ c v n đ này, em quy t đ nh ch n đ tài “XÂY D NG NGậ ấ ượ ấ ề ế ị ọ ề Ự Ứ D NG CH M ĐI M PHI U ĐI N TR C NGHI M” nh m đ a ra gi i pháp giúp ti tỤ Ấ Ể Ế Ề Ắ Ệ ằ ư ả ế ki m đ c th i gian và công s c c a ng i ch m.ệ ượ ờ ứ ủ ườ ấ

Page 4: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

L I C M NỜ Ả Ơ

Em xin g i l i c m n chân thành đ n THS. NGUY N VĂN BÌNH (KHOAử ờ ả ơ ế Ễ CNTT&TT – ĐH ĐÀ N NG). Th y đã giành nhi u th i gian, tâm huy t cũng nhẴ ầ ề ờ ế ư nhi t tình h ng d n cho em hoàn thành đ tài này.ệ ướ ẫ ề

D i đây là k t qu c a quá trình tìm hi u và nghiên c u mà em đã đ t đ cướ ế ả ủ ể ứ ạ ượ trong th i gian v a qua. M c dù r t c g ng và đ c th y cô giáo nhi t tình giúp đờ ừ ặ ấ ố ắ ượ ầ ệ ỡ nh ng do ki n th c có h n và kinh nghi m còn h n ch nên có th đây ch a ph iư ế ứ ạ ệ ạ ế ể ư ả là k t qu mà quý th y cô mong đ i. Em r t mong nh n đ c nh n xét và đóng gópế ả ầ ợ ấ ậ ượ ậ quý báu c a th y cô cùng các b n đ đ tài này đ c hoàn thi n h n cũng nh giúpủ ầ ạ ể ề ượ ệ ơ ư em có thêm nh ng kinh nghi m quý báu cho công vi c sau này.ữ ệ ệ

M t l n n a em xin chân thành c m n!ộ ầ ữ ả ơ

Sinh viên th c hi nự ệT CHÍ H UẠ Ậ

Page 5: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

NH N XÉTẬ(C a gi ng viên h ng d n)ủ ả ướ ẫ

............................................................................................................................................................

............................................................................................................................................................

............................................................................................................................................................

............................................................................................................................................................

............................................................................................................................................................

............................................................................................................................................................

............................................................................................................................................................

............................................................................................................................................................

............................................................................................................................................................

............................................................................................................................................................

............................................................................................................................................................

............................................................................................................................................................

............................................................................................................................................................

............................................................................................................................................................

............................................................................................................................................................

............................................................................................................................................................

GI NG VIÊN H NG D NẢ ƯỚ Ẫ

THS. NGUY N VĂN BÌNHỄ

Page 6: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

M C L CỤ ỤCH NG 1.ƯƠ GI I THI UỚ Ệ ....................................................................................................................10

1.1. T ng quanổ ......................................................................................................................................10

1.2. Ph ng pháp, k t quươ ế ả..............................................................................................................11

1.3. C u trúc đ ánấ ồ ..............................................................................................................................12

CH NG 2.ƯƠ NGHIÊN C U T NG QUANỨ Ổ .....................................................................................13

2.1. Các ph ng phápươ ........................................................................................................................13

2.2. H n ch t n t i c a các ph ng phápạ ế ồ ạ ủ ươ ..............................................................................14

2.3. K t lu nế ậ ...........................................................................................................................................14

CH NG 3.ƯƠ C S LÝ THUY TƠ Ở Ế .....................................................................................................15

3.1. H th ng nh n d ng ch vi t tayệ ố ậ ạ ữ ế .......................................................................................15

3.1.1. Nh ng nét đ c tr ng:ữ ặ ư .......................................................................................................15

3.1.2. Mô t quá trình nh n d ng:ả ậ ạ ..........................................................................................15

3.2. Thu t toán CNN – Convolutional Neural Networkậ .......................................................16

3.2.1. Khái ni m v Convolutional Neural Networkệ ề .......................................................16

3.2.2. Khái ni m v Convolutionalệ ề ..........................................................................................16

3.2.3. C u trúc c a m ng CNNấ ủ ạ ..................................................................................................18

3.3. Th vi n OpenCVư ệ ........................................................................................................................19

3.3.1. Gi i thi uớ ệ ...............................................................................................................................19

3.3.2. ng d ngỨ ụ ...............................................................................................................................19

3.3.3. M t s hàm c n dùngộ ố ầ .......................................................................................................19

3.4. Th vi n tflearnư ệ ...........................................................................................................................22

3.4.1. Gi i thi uớ ệ ...............................................................................................................................22

3.4.2. Tensor......................................................................................................................................23

3.4.3. Graph........................................................................................................................................23

CH NG 4.ƯƠ TRI N KHAI VÀ XÂY D NGỂ Ự ...................................................................................24

4.1. Mô hình h th ngệ ố ........................................................................................................................24

4.2. Xây d ng mô hình Deep Learningự .......................................................................................24

4.2.1. Bài toán đ t raặ .....................................................................................................................24

4.2.2. X lý d li uử ữ ệ .........................................................................................................................24

4.2.3. Xây d ng mô hìnhự ..............................................................................................................27

Page 7: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

4.3. Xây d ng ng d ngự ứ ụ ....................................................................................................................29

4.3.1. Xác đ nh đ i t ng (Object Detection)ị ố ượ .....................................................................29

4.3.2. Nh n d ng đ i t ng (Classification)ậ ạ ố ượ ......................................................................34

CH NG 5.ƯƠ K T LU N VÀ H NG PHÁT TRI NẾ Ậ ƯỚ Ể ...............................................................37

5.1. K t lu nế ậ ...........................................................................................................................................37

5.2. H ng phát tri nướ ể ........................................................................................................................37

Page 8: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

DANH M C CÁC HÌNHỤHình 1. T phi u đi n tr c nghi mờ ế ề ắ ệ .................................................................................................13Hình 2. Quá trình hu n luy n m ng CNNấ ệ ạ .....................................................................................19Hình 3. Kỹ thu t phân ng ng nhậ ưỡ ả ..................................................................................................21Hình 4. Kỹ thu t xói mòn nhậ ả .............................................................................................................22Hình 5. Kỹ thu t giãn n pixelậ ở ............................................................................................................22Hình 6. M c đ ph bi n c a tensorflow tính t lúc đ c opensourceứ ộ ổ ế ủ ừ ượ .........................23Hình 7. Mô hình h th ngệ ố .....................................................................................................................24

Page 9: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

DANH M C C M T VI T T TỤ Ụ Ừ Ế ẮT VI T T TỪ Ế Ắ Ý NGHĨA

DL Deep Learning

SVM Support Vector Machine

CNNs Convolutional Neural Network

Page 10: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

10

CH NG 1. ƯƠ GI I THI UỚ Ệ1.1. T ng quanổ

- Hi n nay, thi tr c nghi m đang tr thành xu h ng b i tính khách quan ệ ắ ệ ở ướ ở(không ph thu c vào ng i ch m). Và đ i v i hình th c ki m tra tr c ụ ộ ườ ấ ố ớ ứ ể ắnghi m, có hai hình th c đang đ c s d ng r ng rãi đó là:ệ ứ ượ ử ụ ộ

1. Ki m tra trên máy tính:ể Các thí sinh sẽ nh p các thông tin cá nhânậ nh : H và Tên, mã s h c sinh/sinh viên, và ti n hành làm bài tr cư ọ ố ọ ế ự ti p ngay trên máy tính. Ph n m m thi tr c nghi m sẽ tính th i gianế ầ ề ắ ệ ờ và cho k t qu ngay t i ch , đ ng th i c p nh t đi m vào c s dế ả ạ ỗ ồ ờ ậ ậ ể ơ ở ữ li u.ệ

2. Ki m tra trên gi y:ể ấ Thí sinh sẽ làm bài trên gi y, sau đó gi m kh oấ ả ả (giáo viên) sẽ ch m bài và cho đi m t ng t nh bài ki m tra vi tấ ể ươ ự ư ể ế thông t ng. Th ng thì cách này, các giám kh o (giáo viên) sẽ sườ ườ ở ả ử d ng bìa đ c l đ ki m tra k t qu bài thi đ ti n hành cho đi m.ụ ụ ỗ ể ể ế ả ể ế ể

- Đ i v i cách th nh t:ố ớ ứ ấ u đi m:Ư ể Thí sinh sẽ có đi m ngay sau khi hoàn thành bài thi. Đi m sể ể ố

đ c t đ ng c p nh t tránh tính tr ng tiêu c c trong ch m bài thi vàượ ự ộ ậ ậ ạ ự ấ sai sót khâu nh p đi m.ở ậ ể

Nh c đi m:ượ ể C n m t s l ng máy tính l n (m i thí sinh m t máy)ầ ộ ố ượ ớ ỗ ộ và d phát sinh các v n đ n u trong lúc làm bài máy tính b tr c tr c,ễ ấ ề ế ị ụ ặ kh i đ ng l i hay th m chí các v n đ , s c v đi n. Bên c nh đó,ở ộ ạ ậ ấ ề ự ố ề ệ ạ vi c ki m tra trên máy tính cũng d gây ra tâm lý hoang mang choệ ể ễ nh ng thí sinh ít đ c ti p xúc v i máy tính. Cách này ch nên áp d ngữ ượ ế ớ ỉ ụ cho các kì thi có s l ng thí sinh h n ch và th ng dùng các kh iố ượ ạ ế ườ ở ố chuyên tin.

- Đ i v i cách th hai:ố ớ ứ u đi m: Tránh đ c các h n ch cách th nh t.Ư ể ượ ạ ế ở ứ ấ Nh c đi m: N u dùng cách ch m thông th ng đó là s d ng bìaượ ể ế ấ ườ ử ụ

đ c l thì v n g p m t s l i h n ch t ng t nh bài thi vi t đó là:ụ ỗ ẫ ặ ộ ố ỗ ạ ế ươ ự ư ế th i gian ch m bài lâu và d n y sinh sai sót trong khâu nh p đi m.ờ ấ ễ ả ậ ể

- T phân tích trên, nh n th y có th k t h p c hai ph ng pháp trên cóừ ậ ấ ể ế ợ ả ươ nghĩa là thí sinh sẽ làm bài trên gi y và thi t k m t ng d ng ch m thi tr cấ ế ế ộ ứ ụ ấ ắ nghi m đ t đ ng hóa công vi c c a các giám kh o t đó bài toán trên đãệ ể ự ộ ệ ủ ả ừ đ c gi i quy t.ượ ả ế

Page 11: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

11

1.2. Ph ng pháp, k t quươ ế ả- V i t phi u đi n tr c nghi m, r t nhi u ng i sẽ ch n gi i pháp đó là ng iớ ờ ế ề ắ ệ ấ ề ườ ọ ả ồ

so đáp án, sau đó ch m th công. Nh ng vi c này ch đ n gi n v i s l ngấ ủ ư ệ ỉ ơ ả ớ ố ượ bài ít, v y đ i v i s l ng bài nhi u thì nh th nào? Đ án l n này em sẽậ ố ớ ố ượ ề ư ế ồ ầ đ a ra m t gi i pháp giúp chúng ta gi i quy t đ c v n đ nêu trên b ngư ộ ả ả ế ượ ấ ề ằ cách s d ng m t mô hình DL (Deep Learning) k t h p v i m t s ph ngử ụ ộ ế ợ ớ ộ ố ươ pháp xác đ nh đ i t ng đ n gi n s d ng th vi n OpenCV. ị ố ượ ơ ả ử ụ ư ệ

- Đ i v i nh ng bài toán th c t này (nh n di n bi n báo giao thông cho xeố ớ ữ ự ế ậ ệ ể không ng i lái, nh n di n ch ng ng i v t, xác đ nh v t th …) bài toán sẽườ ậ ệ ướ ạ ậ ị ậ ể đ c chia làm hai bài toán nh h n:ượ ỏ ơ Th nh t, đó là bài toán xác đ nh (Detection) – th c hi n các ph ngứ ấ ị ự ệ ươ

pháp x lý nh, t đó xác đ nh đ c v trí c a v t th c n tìm trong nhử ả ừ ị ượ ị ủ ậ ể ầ ả hay video nh m dùng làm đ u vào cho bài toán ti p theo.ằ ầ ế

Th hai, bài toán nh n d ng (Classification) – s d ng mô hình DL (Deepứ ậ ạ ử ụ Learning) ho c SVM (Support Vector Machine) đ xác đ nh/nh n d ngặ ể ị ậ ạ các v t th v a đ c xác đ nh bài toán đ u tiên nh m đ a ra k t quậ ể ừ ượ ị ở ầ ằ ư ế ả cu i cùng.ố

- Trong đ tài l n này, em sẽ s d ng th vi n OpenCV đ th c hi n bài toánề ầ ử ụ ư ệ ể ự ệ đ u tiên. Và s d ng tflearn (m t th vi n xây d ng trên tensorflow) đ xâyầ ử ụ ộ ư ệ ự ể d ng m ng DL cho bài toán th hai.ự ạ ứ

- K t qu : K t h p xây d ng đ c m t mô hình DL (Deep Learning) k t h pế ả ế ợ ự ượ ộ ế ợ v i các ph ng pháp xác đ nh đ i t ng. C th là ch vi t tay đ l y đáp ánớ ươ ị ố ượ ụ ể ữ ế ể ấ c a thí sinh. Sau đó, so trùng v i đáp án đã nh p t tr c. T đó đ a ra k tủ ớ ậ ừ ướ ừ ư ế qu cu i cùng bao g m: đi m s và s l ng câu tr l i sai.ả ố ồ ể ố ố ượ ả ờ

Page 12: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

12

Hình 1. T phi u đi n tr c nghi mờ ế ề ắ ệ

1.3. C u trúc đ ánấ ồ- Ch ng 1: Gi i thi u – mô t t ng quan v đ tài bao g m b i c nh th cươ ớ ệ ả ổ ề ề ồ ố ả ự

hi n, v n đ c n gi i quy t và đ xu t n i dung sẽ th c hi n.ệ ấ ề ầ ả ế ề ấ ộ ự ệ- Ch ng 2: Nghiên c u t ng quan –nêu ra các ph ng pháp t ng t đã có tươ ứ ổ ươ ươ ự ừ

đó đ a ra s so sánh t ng quan gi a các ph ng pháp.ư ự ươ ữ ươ- Ch ng 3: C s lý thuy t – bao g m các ki n th c liên quan đ c s d ngươ ơ ở ế ồ ế ứ ượ ử ụ

đ xây d ng đ tài.ể ự ề- Ch ng 4: Tri n khai và Xây d ng – trình bày quá trình tri n khai và xâyươ ể ự ể

d ng đ tài, các th vi n liên quan.ự ề ư ệ

Page 13: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

13

- Ch ng 5: K t lu n và H ng phát tri n – k t lu n l i toàn b n i dung c aươ ế ậ ướ ể ế ậ ạ ộ ộ ủ báo cáo và đ xu t các ph ng án ho c gi i pháp đ c rút ra t k t quề ấ ươ ặ ả ượ ừ ế ả nghiên c u.ứ

CH NG 2. ƯƠ NGHIÊN C U T NG QUANỨ Ổ2.1. Các ph ng phápươ

- Hi n nay có ch y u 2 ph ng b n máy ch m tr c nghi m t đ ng cho cácệ ủ ế ươ ả ấ ắ ệ ự ộ bài thi tr c nghi m trên gi y:ắ ệ ấ

Phiên b n th nh t:ả ứ ấ - Là phiên b n s d ng “Máy đ c Quang H c chuyên d ng” (ORM – Opticalả ử ụ ọ ọ ụ

Mark Reader) hay dùng nguyên t c “Nh n di n D u hi u Quang h c”ắ ậ ệ ấ ệ ọ (OMR – Optical Mark Recognition) đ đ c các bài thi, sau đó dùng ph nể ọ ầ m m ch m bài thi đ đ a ra k t qu .ề ấ ể ư ế ả

- Ph ng pháp “Nh n di n D u hi u Quang h c” là kỹ thu t cho phép xácươ ậ ệ ấ ệ ọ ậ đ nh các d u hi u đ c bi t đã đ c đánh d u trên trang gi y t i các v tríị ấ ệ ặ ệ ượ ấ ấ ạ ị đ nh tr c b ng quang h c. Thi t b đ c sẽ chi u m t chùm sáng lên m tị ướ ằ ọ ế ị ọ ế ộ ặ gi y t đó nh n bi t đ c các d u hi u đ c bi t vì t i đó có s khác bi tấ ừ ậ ế ượ ấ ệ ặ ệ ạ ự ệ v ánh sáng ph n x tr l i.ề ả ạ ở ạ

- Máy ch m thi sẽ nh n bi t đáp án d a vào vi c ánh sáng quét b ch n b iấ ậ ế ự ệ ị ặ ở d u tô màu, ch y u là ánh sáng có b c sóng xanh bi n, h ng đ n c mấ ủ ế ướ ể ướ ế ả bi n c a máy ch m thi. Do đó, thông th ng thì bút chì là lo i bút phùế ủ ấ ườ ạ h p nh t đ làm bài thi b i các ch t có trong chì có tác d ng c n sóng ánhợ ấ ể ở ấ ụ ả sáng r t t t, đ c bi t là y u t ấ ố ặ ệ ế ố graphite – chúng là nh ng phân t Carbonữ ử nh bám theo m t gi y, sẽ h p th h u h t ánh sáng chi u vào và khôngỏ ặ ấ ấ ụ ầ ế ế đ l t hay ph n x l i nhi u ánh sáng khác.ể ọ ả ạ ạ ề

- V y t i sao không ph i là bút bi hay lo i bút khác? B i bút bi hay các lo iậ ạ ả ạ ở ạ bút khác ch a ch c đã th a mãn đ c đi u này. Chúng t o ra nét bút xanhư ắ ỏ ượ ề ạ đ ng nghĩa v i vi c sẽ không h p th ánh sáng xanh, vì v y càng khi nồ ớ ệ ấ ụ ậ ế cho máy ch m thi g p khó khăn đ nh n bi t đâu là đáp án đ c tô đ m.ấ ặ ể ậ ế ượ ậ T ng t v i nh ng màu m c khác…ươ ự ớ ữ ự

Phiên b n th haiả ứ- Là phiên b n nâng c p c a phiên b n th nh t, chúng sẽ không s d ngả ấ ủ ả ứ ấ ử ụ

c ch nh n bi t ánh sáng b ch n, mà l i ch đ ng tìm l ng ánh sángơ ế ậ ế ị ặ ạ ủ ộ ượ đ c ph n chi u l i t nh ng d u màu mà đáp án đ c tô. Đi u này choượ ả ế ạ ừ ữ ấ ượ ề phép m t t gi y thi có th khoanh đáp án c hai m t gi y – khác v iộ ờ ấ ể ở ả ặ ấ ớ đ i máy tr c ch có th ch m trên gi y thi m t m t (đ không b nh mờ ướ ỉ ể ấ ấ ộ ặ ể ị ầ l n nh ng v trí ch n ánh sáng). Do đó, phiên b n này có th nh n bi tẫ ữ ị ặ ả ể ậ ế

Page 14: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

14

t t nhi u tông m c màu khác nhau, dĩ nhiên là tr v i màu m c trùng v iố ề ự ừ ớ ự ớ màu gi y đáp án.ấ

Page 15: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

15

2.2. H n ch t n t i c a các ph ng phápạ ế ồ ạ ủ ươ- Đ i v i phiên b n máy th nh t. Các b n ch p bài thi tr c nghi m khôngố ớ ả ứ ấ ả ụ ắ ệ

đ c l u l i d n đ n n u có phát hi n l i, hay nghi ng có l i trong khiượ ư ạ ẫ ế ế ệ ỗ ờ ỗ máy ch m, ng i dùng ph i l y bài thi (g c) ra đ i chi u – gây m t th iấ ườ ả ấ ố ố ế ấ ờ gian n u ph i xem l i bài thi. Bên c nh đó, các lo i “Máy đ c Quang h c”ế ả ạ ạ ạ ọ ọ có giá thành cũng khá đ t và gi y làm bài thi cũng ph i là lo i gi y chuyênắ ấ ả ạ ấ d ng và in chu n thì m i mang l i đ chính xác cao, d n đ n vi c tri nụ ẩ ớ ạ ộ ẫ ế ệ ể khai t n kém cũng nh thi u s ch đ ng.ố ư ế ự ủ ộ

- M c dù phiên b n th hai đã có s nâng c p v kh năng nh n di n soặ ả ứ ự ấ ề ả ậ ệ v i phiên b n đ u tiên nh ng v n ch a gi i quy t đ c các nh c đi mớ ả ầ ư ẫ ư ả ế ượ ượ ể

phiên b n đ u tiên.ở ả ầ

2.3. K t lu nế ậ- Dù ngày càng có nhi u phát minh h n v máy ch m đi m tr c nghi m tề ơ ề ấ ể ắ ệ ự

đ ng. Nh c đi m l n nh t đ i v i các lo i máy v n là giá thành, v iộ ượ ể ớ ấ ố ớ ạ ẫ ớ nh ng nâng c p v h th ng t ng ng v i giá thành cũng sẽ đ c nângữ ấ ề ệ ố ươ ứ ớ ượ lên. H n th n a, các lo i máy ch ch m đi m đ i v i lo i phi u tô màơ ế ữ ạ ỉ ấ ể ố ớ ạ ế thôi. V y đ i v i phi u ĐI N tr c nghi m chúng ta th ng s d ng thìậ ố ớ ế Ề ắ ệ ườ ử ụ nh th nào?ư ế

- V u đi m đ i v i lo i phi u này: Nó có th in cùng v i đ bài làm gi mề ư ể ố ớ ạ ế ể ớ ề ả chi phí in n. Thay vì v i phi u tô thì đ bài và phi u k t qu sẽ tách đôiấ ớ ế ề ế ế ả riêng bi t. Và đ c bi t môi tr ng h c t p n c ta. Lo i phi u này v nệ ặ ệ ở ườ ọ ậ ướ ạ ế ẫ còn đ c s d ng khá r ng rãi.ượ ử ụ ộ

- Đ i v i lo i phi u này ch c h n có nhi u ng i sẽ ch n gi i pháp đó làố ớ ạ ế ắ ẳ ề ườ ọ ả ng i so đáp án, ch m th công b ng tay, tuy nhiên vi c này ch đ n gi nồ ấ ủ ằ ệ ỉ ơ ả đ i v i s l ng bài ít. Do v y, trong đ tài l n này em xin đ a ra m t gi iố ớ ố ượ ậ ề ầ ư ộ ả pháp giúp m i ng i có th gi i quy t đ c v n đ nêu trên b ng cáchọ ườ ể ả ế ượ ấ ề ằ xây d ng “ ng d ng ch m đi m phi u đi n tr c nghi m”ự Ứ ụ ấ ể ế ề ắ ệ

Page 16: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

16

CH NG 3. ƯƠ C S LÝ THUY TƠ Ở Ế3.1. H th ng nh n d ng ch vi t tayệ ố ậ ạ ữ ế

3.1.1. Nh ng nét đ c tr ng:ữ ặ ư- Nh n d ng ch vi t tay th ng bao g m năm giai đo n: ti n x lýậ ạ ữ ế ườ ồ ạ ề ử

(preprocessing), phân m nh (segmentation), bi u di n (representation),ả ể ễ hu n luy n và nh n d ng (training and recognition), h u x lýấ ệ ậ ạ ậ ử (postprocessing)

1. Ti n x lý: gi m nhi u cho các l i trong quá trình quét nh, ho tề ử ả ễ ỗ ả ạ đ ng vi t c a con ng i, chu n hóa d li u và nén d li u.ộ ế ủ ườ ẩ ữ ệ ữ ệ

2. Phân m nh: chia nh văn b n thành nh ng ph n nh h n, phânả ỏ ả ữ ầ ỏ ơ m nh các t trong câu hay các kí t trong t .ả ừ ự ừ

3. Bi u di n (rút trích đ c đi m): đây là giai đo n đóng vai trò quanể ễ ặ ể ạ tr ng nh t trong nh n d ng ch vi t tay. Đ tránh nh ng ph c t pọ ấ ậ ạ ữ ế ể ữ ứ ạ c a ch vi t tay cũng nh tăng c ng đ chính xác, tac c n ph iủ ữ ế ư ườ ộ ầ ả bi u di n thông tin ch vi t d i nh ng d ng đ c bi t h n và côể ễ ữ ế ướ ữ ạ ặ ệ ơ đ ng h n, rút trích các đ c đi m riêng nh m phân bi t các ký tọ ơ ặ ể ằ ệ ự khác nhau.

4. Hu n luy n và nh n d ng: ph ng pháp đi n hình so trùng m u,ấ ệ ậ ạ ươ ể ẫ dùng th ng kê, m ng n -ron, trí tu nhân t o hay dùng ph ngố ạ ơ ệ ạ ươ pháp k t h p các ph ng pháp trên.ế ợ ươ

5. H u x lý: s d ng các thông tin v ng c nh đ giúp tăng c ngậ ử ử ụ ề ữ ả ể ườ đ chính xác.ộ

3.1.2. Mô t quá trình nh n d ng:ả ậ ạ1. Ban đ u, các hình nh sẽ đi qua giai đo n chuy n nh v d ng nh nhầ ả ạ ể ả ề ạ ả ị

phân (giai đo n ti n x lý). nh sẽ đ c l u tr d i d ng ma tr n đi m,ạ ề ử Ả ượ ư ữ ướ ạ ậ ể v trí pixel có nét vẽ sẽ mang giá tr t 1 đ n 255, ng c l i sẽ có giá tr 0.ị ị ừ ế ượ ạ ị Sau đó, nh đ c c t xén đ ký t n m tr n trong m t khung hình chả ượ ắ ể ự ằ ọ ộ ữ nh t, các vùng không gian không có nét vẽ sẽ b lo i b đi. Gi i thu t c tậ ị ạ ỏ ả ậ ắ xén th c hi n đ n gi n d a trên nh nh phân và thu gi m nh đã đ cự ệ ơ ả ự ả ị ả ả ượ c t xén v m t nh có kích th c chung đã quy đ nh t tr c.ắ ề ộ ả ướ ị ừ ướ

2. Ti p theo, nh đã đ c c t xén và thu nh sẽ đ c làm m ng. Quá trìnhế ả ượ ắ ỏ ượ ỏ làm m ng này giúp ta ch l y nh ng thông tin c n thi t v hình d ng c aỏ ỉ ấ ữ ầ ế ề ạ ủ ký t và lo i b các pixel d th a. Sau khi làm m ng, nh ng pixel có ýự ạ ỏ ư ừ ỏ ữ nghĩa sẽ đ c gi l i.ượ ữ ạ

Page 17: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

17

3. nh sau quá trình làm m ng ch a h u h t các thông tin v hình d ng c aẢ ỏ ứ ầ ế ề ạ ủ ký t . Nh ng thông tin này sẽ đ c phân tích đ rút trích nh ng đ c đi mự ữ ượ ể ữ ặ ể giúp vi c phân lo i các ký t v i nhau. Ph ng th c này d a trên thôngệ ạ ự ớ ươ ứ ự tin v hình d ng c a ký t nh s chuy n v trí và s chuy n chi u. Cácề ạ ủ ự ư ự ể ị ự ể ề thông tin này giúp máy l y đ c các đ c đi m c a t ng ký t , phân lo iấ ượ ặ ể ủ ừ ự ạ chúng và t o ra các thông tin c n thi t đ nh n d ng các ký t . Do chạ ầ ế ể ậ ạ ự ữ vi t m i ng i m i khác nên ta không th thu th p t t c nét ch c aế ỗ ườ ỗ ể ậ ấ ả ữ ủ t ng ng i đ máy có th nh n di n mà ch có th d a trên m t s m uừ ườ ể ể ậ ệ ỉ ể ự ộ ố ẫ nào đó đ nh n ra các nét ch c a nh ng ng i vi t khác nhau.ể ậ ữ ủ ữ ườ ế

4. Xây d ng mô hình Deep Learning đ ng nghĩa v i vi c thi t l p các thôngự ồ ớ ệ ế ậ s thích h p đ mô hình có th phân bi t đ c ký t có trong và ngoàiố ợ ể ể ệ ượ ự m u. Sau m t lo t các giai đo n trên, chúng ta sẽ thu đ c nh ng thôngẫ ộ ạ ạ ượ ữ s c n thi t c a mô hình DL, và nó sẽ giúp h th ng phân bi t đ c cácố ầ ế ủ ệ ố ệ ượ ký t .ự

3.2. Thu t toán CNN – Convolutional Neural Networkậ3.2.1. Khái ni m v Convolutional Neural Networkệ ề- Convolutional Neural Network (CNNs –M ng n -ron tích ch p) là m tạ ơ ậ ộ

trong nh ng mô hình Deep Learning tiên ti n. Nó giúp chúng ta xây d ngữ ế ự đ c nh ng h th ng thông minh v i đ chính xác cao. Hi n nay, CNNượ ữ ệ ố ớ ộ ệ đ c s d ng nhi u trong các bài toán nh n d ng các đ i t ng (object)ượ ử ụ ề ậ ạ ố ượ trong nh.ả

3.2.2. Khái ni m v Convolutionalệ ề- Convolutional bao g m 2 khái ni m khác đó là ồ ệ Convolution Filter và

Convolutional Layer. - Trong m ng Neural Network thông th ng, t input, ta cho qua cácạ ườ ừ

hidden layer r i ra đ c output. V i CNN, ồ ượ ớ Convolutional Layer cũng chính là các hidden layer, khác ch , ở ỗ Convolutional Layer là m t t p cácộ ậ Feature Map và m i ỗ Feature Map là m t b n scan c a input ban đ u,ộ ả ủ ầ nh ng đ c trích rút ra các feature (đ c tính) c th . ư ượ ặ ụ ể

- Convolution Filter sẽ quy t đ nh các feature sẽ đ c scan nh th nào,ế ị ượ ư ế đây sẽ là m t ma tr n quét qua ma tr n d li u đ u vào, t trái qua ph i,ộ ậ ậ ữ ệ ầ ừ ả t trên xu ng d i, và nhân t ng ng giá tr c a ma tr n đ u vào v iừ ố ướ ươ ứ ị ủ ậ ầ ớ Convolution Filter r i c ng t ng l i, t p h p các con s này là 1 ma tr nồ ộ ổ ạ ậ ợ ố ậ đ c g i là ượ ọ Feauture Map.

Page 18: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

18

1 1 1 0 0

0 1 1 1 0

0 0 1 1 1

0 0 1 1 0

0 1 1 0 0

Input Image

1 0 1

0 1 0

1 0 1

Convolution Filter

- Ti n hành quét Filter qua t ng ph n t c a input image. Tính toán nh trên,ế ừ ầ ử ủ ư nhân t ng ng r i c ng k t qu , thu đ c m t giá tr t i Feature Map.ươ ứ ồ ộ ế ả ượ ộ ị ạ

1x1 1x0 1x1 0 0

0x0 1x1 1x0 1 0

0x1 0x0 1x0 1 1

0 0 1 1 0

0 1 1 0 0

Input Image x Filter

4

Feature Map

- Th c hi n l n l t cho đ n h t, ta thu đ c Feature Map hoàn ch nh:ự ệ ầ ượ ế ế ượ ỉ

4 3 4

2 4 3

2 3 4

Feature Map

- Thông th ng, các giá tr ban đ u c a Convolution Filter đ c sinh ra d a vào ườ ị ầ ủ ượ ựnhu c u mu n trích xu t m t feature/đ c tính nào đó c a input. V i CNN thì nó ầ ố ấ ộ ặ ủ ớsẽ t đ ng tìm các Convolution Filter, t dò các feature.ự ộ ự

Page 19: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

19

Page 20: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

20

3.2.3. C u trúc c a m ng CNNấ ủ ạ- M ng CNN là m t t p h p các l p Convolution ch ng lên nhau và s d ng ạ ộ ậ ợ ớ ồ ử ụ

các hàm Nonlinear Activation nh ReLU và Tanh đ kích ho t các tr ng s ư ể ạ ọ ốtrong các Node. M i l p sau khi thông qua các hàm kích ho t sẽ t o ra các ỗ ớ ạ ạthông tin tr u t ng h n cho các l p ti p theo.ừ ượ ơ ớ ế

- M i l p sau khi thông qua các hàm kích ho t sẽ t o ra các thông tin tr u ỗ ớ ạ ạ ừt ng h n cho các l p ti p theo. Trong mô hình m ng truy n ng c ượ ơ ớ ế ạ ề ượ(Feedforward Neural Network) thì m i neural đ u vào (input node) cho m i ỗ ầ ỗneural đ u ra trong các l p ti p theo. Mô hình này đ c g i là m ng k t n i ầ ớ ế ượ ọ ạ ế ốđ y đ (Fully Connected Layer) hay m ng toàn v n (Affine Layer). ầ ủ ạ ẹ

- Còn trong mô hình CNN thì ng c l i. Các layer liên k t đ c v i nhau thông ượ ạ ế ượ ớqua c ch Convolution. Layer ti p theo là k t qu Convolution t layer ơ ế ế ế ả ừtr c đó, nh v y mà ta có đ c các k t n i c c b . Nh v y m i neural ướ ờ ậ ượ ế ố ụ ộ ư ậ ỗ ởl p k ti p sinh ra t k t qu c a filter áp d ng lên m t vùng nh c c b ớ ế ế ừ ế ả ủ ụ ộ ả ụ ộc a neural tr c đó.ủ ướ

- M i m t l p nh v y s d ng các filter khác nhau, thông th ng có hàng ỗ ộ ớ ư ậ ử ụ ườtrăm hàng nghìn filter nh v y và k t h p k t qu c a chúng l i v i nhau. ư ậ ế ợ ế ả ủ ạ ớNgoài ra còn có m t s layer khác nh pooling/subsampling layer dùng đ ộ ố ư ểch t l c l i các thông tin h u ích (lo i b các thông tin nhi u).ắ ọ ạ ữ ạ ỏ ễ

- Trong quá trình hu n luy n, CNN sẽ t đ ng h c các giá tr qua l p filter d a ấ ệ ự ộ ọ ị ớ ựvào cách th c mà chúng ta th c hi n. Ví d trong tác v phân l p nh, CNN sẽứ ự ệ ụ ụ ớ ả c g ng tìm ra thông s t i u giành cho các filter t ng ng theo th t raw ố ắ ố ố ư ươ ứ ứ ựpixel > edges > shapes > facial > high-level features. Layer cu i cùng đ c ố ượdùng đ phân l p nh.ể ớ ả

Hình 2. Quá trình hu n luy n m ng CNNấ ệ ạ

Page 21: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

21

- Đ c bi t, trong mô hình CNN có 2 khía c nh c n quan tâm đó là ặ ệ ạ ầ tính b t ấbi n (Location Invariance) ế và tính k t h p (Compositionality). ế ợ V i cùng ớm t đ i t ng, n u đ i t ng này đ c chi u theo nhi u góc đ khác nhau ộ ố ượ ế ố ượ ượ ế ề ộ(translation, rotation, scaling) thì đ chính xác c a thu t toán sẽ b nh ộ ủ ậ ị ảh ng đáng k .ưở ể

3.3. Th vi n OpenCVư ệ3.3.1. Gi i thi uớ ệ

- OpenCV (Open Computer Vision) là m t th vi n mã ngu n m hàng đ u choộ ư ệ ồ ở ầ x lý v th giác máy tính, machine learning, x lý nh. OpenCV đ c vi tử ề ị ử ả ượ ế b ng C/C++, vì v y có t c đ tính toán r t nhanh, có th s d ng v i các ngằ ậ ố ộ ấ ể ử ụ ớ ứ d ng liên quan đ n th i gian th c. OpenCV có các interface cho C/C++,ụ ế ờ ự Python và Java vì v y h tr đ c cho Windows, Linux, MacOS hay th m chíậ ỗ ợ ượ ậ Android, iOS. 3.3.2. ng d ngỨ ụ

- Trong đ tài l n này, th vi n OpenCV ch y u đ c s d ng đ th c hi nề ầ ư ệ ủ ế ượ ử ụ ể ự ệ các ph ng pháp x lý nh, t đó xác đ nh đ c v trí c a v t th c n tìmươ ử ả ừ ị ượ ị ủ ậ ể ầ trong nh hay video nh m dùng làm đ u vào cho bài toán ti p theo.ả ằ ầ ế3.3.3. M t s hàm c n dùngộ ố ầ1. findContours

- Contours là t p h p các đi m liên t c t o thành m t đ ng congậ ợ ể ụ ạ ộ ườ (curve/boundary), và không có kho ng h trong đ ng cong đó, đ c đi mả ở ườ ặ ể chung c a m t contour là các đi m có cùng/g n/x p x m t giá tr màu, ho củ ộ ể ầ ấ ỉ ộ ị ặ cùng m t đ . Contours là m t công c h u ích đ phân tích đ i t ng, phátậ ộ ộ ụ ữ ẻ ố ượ hi n và nh n di n đ i t ng.ệ ậ ệ ố ượ

contours, hierarchy = cv2.findContours(binaryImg, typeofContour, methodofContour)

Trong đó,o contours Danh sách các contour có trong binaryImg. M i ỗ

contour đ c l u tr d i d ng vector các ượ ư ữ ướ ạđi m.ể

o hierarchy Danh sách các vector ch a m i quan h gi a các ứ ố ệ ữcontour.

o binaryImg nh nh phân g c. Sau khi s d ng hàm Ả ị ố ử ụfindContours thì giá tr c a binaryImg cũng b ị ủ ịthay đ i, nên khi s d ng c n áp d ng hàm ổ ử ụ ầ ụbinaryImg.copy() đ tránh thay đ i giá tr nh ể ổ ị ảg c.ố

Page 22: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

22

o typeofContour có các d ng sau: RETR_EXTERNAL, RETR_LIST, ạRETR_CCOMP, RETR_TREE, RETR_FLOODFILL

o methodofContour

có các ph ng th c sau: CHAIN_APPROX_NONE, ươ ứCHAIN_APPROX,SIMPLE,CHAIN_APPROX_TC89_L1, CHAIN_APPROX_TC89_KCOS.

2. threshold- Khi x lý tr c ti p nh t không gian nh màu ho c nh xám đôi khi vi cử ự ế ả ừ ả ặ ả ệ

ti p nh n m t s l ng l n thông tin t nh. Đi u này có th gây khó khănế ậ ộ ố ượ ớ ừ ả ề ể cho vi c xây d ng thu t toán và làm gi m t c đ x lý. Vì th kỹ thu t phânệ ự ậ ả ố ộ ử ế ậ ng ng (threshold) giúp chuy n nh đ u vào ( nh màu ho c nh xám) vưỡ ể ả ầ ả ặ ả ề không gian nh nh phân (ch g m 2 màu) giúp đ n gi n hóa quá trình x lý.ả ị ỉ ồ ơ ả ử

binaryImg = cv2.threshold(imgSource, thresh, maxval, type)

Trong đó,o imgSource nh đ u vào là m t nh xámẢ ầ ộ ảo thresh Giá tr ng ngị ưỡo maxval Giá tr đ c gán n u giá tr pixel l n h n giá trị ượ ế ị ớ ơ ị

ng ngưỡo type Phân lo i ng ngạ ưỡ

- Tùy theo phân lo i ng ng mà pixel đ c gán giá tr khác nhau:ạ ưỡ ượ ị THESH_BINARY:

N u giá tr pixel l n h n ng ng thì gán b ng maxval. Ng c l i gán b ng 0.ế ị ớ ơ ưỡ ằ ượ ạ ằ THRESH_BINARY_INV:

N u giá tr pixel l n h n ng ng thì gán b ng 0. Ng c l i gán b ng maxval.ế ị ớ ơ ưỡ ằ ượ ạ ằ THRESH_TRUNC:

N u giá tr pixel l n h n ng ng thì gán giá tr b ng ng ng. Ng c l i giế ị ớ ơ ưỡ ị ằ ưỡ ượ ạ ữ nguyên giá tr .ị

THRESH_TOZERO:N u giá tr pixel l n h n ng ng thì gi nguyên giá tr . Ng c l i gán b ng 0.ế ị ớ ơ ưỡ ữ ị ượ ạ ằ

THRESH_TOZERO_INV:N u giá tr pixel l n h n ng ng thì gán giá tr b ng 0. Ng c l i thì giế ị ớ ơ ưỡ ị ằ ượ ạ ữ nguyên.

Page 23: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

23

Hình 3. Kỹ thu t phân ng ng nhậ ưỡ ả

3. M t s hàm đi u ch nh hình thái nhộ ố ề ỉ ả Erosion – xói mòn.- Th ng đ c áp d ng trong nh ng hình nh nh phân tuy nhiên có m t sườ ượ ụ ữ ả ị ộ ố

phiên b n sẽ đ c áp d ng trên nh ng nh xám.ả ượ ụ ữ ả- M c đích c a ph ng pháp:ụ ủ ươ

1. Giúp lo i b nh ng pixel cô l pạ ỏ ữ ậ2. Lo i b nh ng pixel nhi u xung quanh đ i t ng giúp cho c nh (edge)ạ ỏ ữ ễ ố ượ ạ

c a đ i t ng tr nên m n h n.ủ ố ượ ở ị ơ3. Lo i b l p vi n c nh c a đ i t ng giúp đ i t ng tr nên nh h n vàạ ỏ ớ ề ạ ủ ố ượ ố ượ ở ỏ ơ

đ t nh ng pixel vi n đó tr thành l p n n c a đ i t ng.ặ ữ ề ở ớ ề ủ ố ượ

Hình 4. Kỹ thu t xói mòn nhậ ả

Page 24: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

24

Dilation – giãn nở- T ng t v i Erosion, Dilation cũng đ c áp d ng trong các hình nh nhươ ự ớ ượ ụ ả ị

phân.- M c đích c a ph ng pháp này:ụ ủ ươ

1. V i nh ng nh b đ t, có th giúp n i li n nh l i.ớ ữ ả ị ứ ể ố ề ả ạ2. V i nh ng pixel nhi u xung quanh đ i t ng sẽ tr thành vi n c a đ iớ ữ ễ ố ượ ở ề ủ ố

t ng.ượ3. Giúp n i b t đ i t ng trong nh h nổ ậ ố ượ ả ơ

3.4. Th vi n tflearnư ệ3.4.1. Gi i thi uớ ệ

- Tflearn là m t th vi n xây d ng trên tensorflow.ộ ư ệ ự- Tensorflow là m t th vi n mã ngu n m dùng cho tính toán s h c s d ng ộ ư ệ ồ ở ố ọ ử ụ

đ th lu ng d li u.ồ ị ồ ữ ệ- Tensorflow tích h p s n r t nhi u các th vi n machine learning.ợ ẵ ấ ề ư ệ- Có kh năng t ng thích và m r ng t t.ả ươ ở ộ ố- Tính ph bi n cao.ổ ế

Hình 5. M c đ ph bi n c a tensorflow tính t lúc đ c opensourceứ ộ ổ ế ủ ừ ượ

Page 25: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

25

Page 26: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

26

3.4.2. Tensor

- Tensor là m t m ng có n chi u (n-dimensional array). Ch ng h n nh :ộ ả ề ẳ ạ ưo 0-d tensor, còn đ c g i là scalar hay ch là m t s . Ví d : 1, 2, -3…ượ ọ ỉ ộ ố ụo 1-d tensor, còn đ c g i là vector. Ví d : [1 2 3 4],…ượ ọ ụo 2-d tensor, còn đ c g i là ma tr n (matrix). Ví d : [1 2 3; 4 5 6; 7 8 9]ượ ọ ậ ụ

…3.4.3. Graph

- M t graph sẽ bao g m các đ nh (node) các c nh (edge). Trong tflearn, node ộ ồ ỉ ạcó th là toán t , h ng s , bi n và các c nh sẽ là các tensor.ể ử ằ ố ế ạ

- Nh v y, tensor chính là d li u(data).ư ậ ữ ệ

Tensorflow = tensor + flow = data + flow ~ Lu ng c a các d li uồ ủ ữ ệ

Page 27: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

27

CH NG 4. ƯƠ TRI N KHAI VÀ XÂY D NGỂ Ự4.1. Mô hình h th ngệ ố

Hình 6. Mô hình h th ngệ ố

Đ u vào bao g m:ầ ồ- Đáp án c a bài thi đ c nh p tr c ti p vào ng d ng ch m đi m.ủ ượ ậ ự ế ứ ụ ấ ể- Hình nh c a bài thi đ c thu l i (ch p l i) b ng đi n tho i thông minh.ả ủ ượ ạ ụ ạ ằ ệ ạ ng d ng:Ứ ụ- K t h p xây d ng m t mô hình Deep Learning k t h p v i các ph ng phápế ợ ự ộ ế ợ ớ ươ

xác đ nh đ i t ng. C th là nh n di n ch vi t tay đ l y đáp án c a thíị ố ượ ụ ể ậ ệ ữ ế ể ấ ủ sinh, sau đó so trùng v i đáp án đã đ c nh p “Đ u vào”. T đó đ a ra k tớ ượ ậ ở ầ ừ ư ế qu cu i cùng.ả ố

Đ u ra: ầ- K t qu là đi m s c a bài thi sẽ đ c hi n th lên màn hình.ế ả ể ố ủ ượ ể ị

4.2. Xây d ng mô hình Deep Learningự4.2.1. Bài toán đ t raặ

- Mô hình (model) Deep Learning đ c xây d ng trong khuôn kh đ tài l nượ ự ổ ề ầ này có nhi m v phân bi t đ c 4 ch cái in hoa (uppercase) trong b ng chệ ụ ệ ượ ữ ả ữ cái Alphabet: A, B, C và D ph c v cho công vi c ch m đi m phi u đi n tr cụ ụ ệ ấ ể ế ề ắ nghi m.ệ4.2.2. X lý d li uử ữ ệ

- B d li u hình nh đ c s d ng đ hu n luy n (train) cho model bao g mộ ữ ệ ả ượ ử ụ ể ấ ệ ồ hình nh c a 26 ch cái in hoa trong b ng ch cái Alphabet t A đ n Z.ả ủ ữ ả ữ ừ ế

- B d li u đ c s d ng trong đ tài l n này:ộ ữ ệ ượ ử ụ ề ầhttps://www.kaggle.com/sachinpatel21/az-handwritten-alphabets-in-csv-format

Page 28: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

28

- Sau khi ti n hành t i b d li u (~667MB), sẽ nh n đ c t p d li u đ nhế ả ộ ữ ệ ậ ượ ệ ữ ệ ị d ng CSV: ạ A_Z Handwritten Data.csv.

- b d li u này, m i dòng đ i di n cho m t nh có kích th c 28*28, ký tỞ ộ ữ ệ ỗ ạ ệ ộ ả ướ ự đ u tiên đ i di n cho l p (class) mà nh đó thu c v ( ch “A” có class là 0,ầ ạ ệ ớ ả ộ ề ữ “B” có class là 1, … t ng t “Z” là class 26).ươ ự

- Đ tăng t c đ hu n luy n cho mô hình và có th ng d ng mô hình cho bàiể ố ộ ấ ệ ể ứ ụ toán đ t ra, em ch xây d ng mô hình cho b n kí t đ u tiên trong b ng chặ ỉ ự ố ự ầ ả ữ cái Alphabet đó là A, B, C, D.

o Ti n hành import m t s th vi n c n thi t.ế ộ ố ư ệ ầ ếimport numpy as npimport csvimport matplotlibimport matplotlib.pyplot as pltimport matplotlibimport cv2import randomimport tensorflow as tfimport tflearnfrom tflearn.layers.conv import conv_2d, max_pool_2dfrom tflearn.layers.core import input_data, dropout, fully_connectedfrom tflearn.layers import regressionfrom tflearn.data_utils import to_categorical

o Đ c t ng dòng d li u c a file csv và thêm vào list ọ ừ ữ ệ ủ rows, m i ph n t c a listỗ ầ ừ ủ này là m t dòng trong file csv.ộ

with open('hand_written.csv', 'r') as csv_file:    result = csv.reader(csv_file)    rows = []

    for row in result:        rows.append(row)

o L y các ký t A, B, C, D có trong t p d li u csv và l u vào ấ ự ậ ữ ệ ư train_data, train_label. M i ph n t trong train_data là m t m ng 28x28, đ i di n cho ỗ ầ ừ ộ ả ạ ệm i nh c a m t ký t . Label t ng ng c a ký t đó là m t s đ c l u ỗ ả ủ ộ ự ươ ứ ủ ự ộ ố ượ ưtrong train_label. T ng s nh c a 4 ký t thu đ c ~56081 hình nh.ổ ố ả ủ ự ượ ả

train_data = []    train_label = []

Page 29: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

29

    for letter in rows:        if (letter[0]=='0') or (letter[0]=='1') or (letter[0]=='2') or (letter[0]=='3'):            x = np.array([int(j) for j in letter[1:]])            x = x.reshape(28,28)            train_data.append(x)            train_label.append(int(letter[0]))        else:            break

o Đ d li u training là hoàn toàn ng u nhiên, không theo th t xác đ nh, ể ữ ệ ẫ ứ ự ịchúng ta sẽ xáo tr n d li u ban đ u nh sau.ộ ữ ệ ầ ư

shuffle_order = list(range(56081))random.shuffle(shuffle_order)

train_data = np.array(train_data)train_label = np.array(train_label)

train_data = train_data[shuffle_order]train_label = train_label[shuffle_order]

o Ti p t c chia t p d li u trainning thành 3 t p riêng bi t: ế ụ ậ ữ ệ ậ ệ training_set, test_set và validation_set:1. training_set: d li u ph c v cho vi c xây d ng mô hình, xác đ nh thu t ữ ệ ụ ụ ệ ự ị ậ

toán, bi n d li u phù h p.ế ữ ệ ợ2. test_set: là d li u đ c s d ng đ đánh giá đ hi u qu c a mô hình, ữ ệ ượ ử ụ ể ộ ệ ả ủ

m c đ chính xác trong phân lo i d li u (không ch a ứ ộ ạ ữ ệ ứ train_label, t c là ứgiá tr c a bi n m c tiêu phân lo i b che đi.)ị ủ ế ụ ạ ị

3. validation_set: là d li u đ c s d ng đ đánh giá hi u su t c a mô ữ ệ ượ ử ụ ể ệ ấ ủhình đ c xây d ng trong giai đo n hu n luy n, h tr th nghi m đ ượ ự ạ ấ ệ ỗ ợ ử ệ ểtinh ch nh các tham s mô hình và ch n mô hình ho t đ ng t t nh t.ỉ ố ọ ạ ộ ố ấ

train_x = train_data[:50000]train_y = train_label[:50000]

 val_x = train_data[50000:53000]val_y = train_label[50000:53000]

test_x = train_data[53000:]test_y = train_label[53000:]

Trong đó, x là d li u đ u vào (input) và y là label t ng ng cho input (output)ữ ệ ầ ươ ứ

Page 30: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

30

4.2.3. Xây d ng mô hìnhự- Trong đ tài l n này, em s d ng th vi n ề ầ ử ụ ư ệ tflearn cho vi c xây d ng mô hìnhệ ự

h c máy. Đây là m t th vi n t ng đ i d s d ng và yêu c u ít ki n th c ọ ộ ư ệ ươ ố ễ ử ụ ầ ế ứv Machine Learning.ề

o Sau quá trình X lý d li u ử ữ ệ trên, ti n hành kh i t o các giá tr h ng s ở ế ở ạ ị ằ ốđ c s d ng trong mô hìnhượ ử ụ

    BATCH_SIZE = 32    IMG_SIZE = 28    N_CLASS = 4    LR = 0.001    N_EPOCHS = 50

Trong đó, 1. BATCH_SIZE: kích th c c a m i batch d li u truy n vào.ướ ủ ỗ ữ ệ ề2. IMG_SIZE: kích th c m i chi u c a hình nh đ u vào.ướ ỗ ề ủ ả ầ3. N_CLASS: S l ng class mà chúng ta c n hu n luy n.ố ượ ầ ấ ệ4. LR: T c đ h cố ộ ọ5. N_EPOCHS: S l ng epoch mà chúng ta c n training.ố ượ ầ

o Mô hình đ c xây d ng đây bao g m 6 l p Convolutional và 2 l p Fully ượ ự ở ồ ớ ớConnected n i ti p nhau.ố ế

    tf.reset_default_graph()

    network = input_data(shape=[None, IMG_SIZE, IMG_SIZE, 1]) #1

    network = conv_2d(network, 32, 3, activation='relu') #2    network = max_pool_2d(network, 2) #3

    network = conv_2d(network, 64, 3, activation='relu')    network = max_pool_2d(network, 2)

    network = conv_2d(network, 32, 3, activation='relu')    network = max_pool_2d(network, 2)

    network = conv_2d(network, 64, 3, activation='relu')    network = max_pool_2d(network, 2)

    network = conv_2d(network, 32, 3, activation='relu')    network = max_pool_2d(network, 2)

    network = conv_2d(network, 64, 3, activation='relu')

Page 31: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

31

    network = max_pool_2d(network, 2)

    network = fully_connected(network, 1024, activation='relu') #4    network = dropout(network, 0.8)

    network = fully_connected(network, N_CLASS, activation='softmax') #6    network = regression(network)

    model = tflearn.DNN(network) #7Trong đó,

#1: kích th c nh đ u vào là [None, IMG_SIZE, IMG_SIZE, 1]ướ ả ầ- None đ i di n cho BATCH_SIZE.ạ ệ- IMG_SIZE là kích th c m i chi u c a nh.ướ ỗ ề ủ ả- 1 là s d i màu c a nh, do ch y u t p trung s d ng nh đen tr ngố ả ủ ả ủ ế ậ ử ụ ả ắ

nên ch có 1 d i màu, và n u s d ng nh màu thì s d i màu màỉ ả ế ử ụ ả ố ả chúng ta s d ng sẽ là 3, đ i di n cho 3 d i màu RGB.ử ụ ạ ệ ả

#2: Convolutional Layer- 32: S l ng filters.ố ượ- 3: filter size (3x3)- B c nh y (stride) đ c m c đ nh là 1ướ ả ượ ặ ị- Activation function: ReLU #3: Maxpool Layer- 2: kernel size #4 Fully-connected Layer- 1024: s l ng neural.ố ượ- Activation Function: ReLU #5: Dropout: 80% #6: Fully-connected Layer đ i di n cho đ u ra (Output)ạ ệ ầ- N_CLASS: s output đ u ra.ố ầ- Activation Function: Softmax (đ t ng xác su t đ u ra b ng 1)ể ổ ấ ầ ằ #7: Xây d ng mô hình.ự

o Đ d li u đ u vào đ c trùng kh p v i mô hình đã xây d ng, ta c n ph i ể ữ ệ ầ ượ ớ ớ ự ầ ảđ a d li u v đ nh d ng phù h p nh sau:ư ữ ệ ề ị ạ ợ ư

train_x = train_x.reshape(-1, IMG_SIZE, IMG_SIZE, 1)val_x = val_x.reshape(-1, IMG_SIZE, IMG_SIZE, 1)test_x = test_x.reshape(-1, IMG_SIZE, IMG_SIZE, 1)

original_test_y = test_ytrain_y = to_categorical(train_y, N_CLASS)val_y = to_categorical(val_y, N_CLASS)test_y = to_categorical(test_y, N_CLASS)

Page 32: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

32

o Ti n hành trainingếmodel.fit(train_x, train_y, n_epoch=N_EPOCHS, validation_set=(val_x, val_y), show_metric=True)o L u model đã trainư

model.save('mymodel.tflearn')o K t qu :ế ả- Sau khi train đ c kho ng ~60 steps k t qu thu đ c nh sauượ ả ế ả ượ ư

| Adam | epoch: 067 | loss: 0.23665 - acc: 0.9886- Đ v i validation set, đ chính xác lên đ n 98,86%.ố ớ ộ ế

4.3. Xây d ng ng d ngự ứ ụ4.3.1. Xác đ nh đ i t ng (Object Detection)ị ố ượ

o import m t s th vi n c n dùngộ ố ư ệ ầfrom cv2 import cv2from matplotlib import pyplot as pltimport tensorflow as tfimport tflearnimport numpy as npfrom tflearn.layers.conv import conv_2d, max_pool_2dfrom tflearn.layers.core import input_data, dropout, fully_connectedfrom tflearn.layers import regressionfrom tflearn.data_utils import to_categoricalimport argparseo Thêm command line arguments cho ng d ngứ ụ

ap = argparse.ArgumentParser()ap.add_argument("-i", "--image", required = True, help = "Path to the image")args = vars(ap.parse_args())o Chuy n đ i nh g c thành nh nh phân b ng cách s d ng hàm threshold ể ổ ả ố ả ị ằ ử ụ

c a openCVủimg = cv2.imread(args["image"], 0)blur = cv2.GaussianBlur(img, (5,5),0)thresh = cv2.adaptiveThreshold(blur, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV,11,2)

Page 33: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

33

o Tr c khi đ a vào hàm threshold, s d ng thêm m t hàm làm m giúp nhướ ư ử ụ ộ ờ ả gi m đ c nhi u nhi u và khi n cho nh qua threshold đ c m n h n.ả ượ ề ễ ế ả ượ ị ơ

Page 34: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

34

o Xác đ nh v trí các đ ng ngang và d c trong nhị ị ườ ọ ảhorizal = threshvertical = threshscale_height = 20scale_long = 15

long = int(img.shape[1]/scale_long)height = int(img.shape[0]/scale_height)

horizalStructure = cv2.getStructuringElement(cv2.MORPH_RECT, (long, 1))horizal = cv2.erode(horizal, horizalStructure, (-1,-1))horizal = cv2.dilate(horizal, horizalStructure, (-1,-1))

verticalStructure = cv2.getStructuringElement(cv2.MORPH_RECT, (1,height))vertical = cv2.erode(vertical, verticalStructure, (-1,-1))vertical = cv2.dilate(vertical, verticalStructure, (-1,-1))

mask = vertical + horizal

- Ban đ u, sẽ l y ra 2 nh th thresh g c, sau đó, xác đ nh c u trúc c a m tầ ấ ả ừ ố ị ấ ủ ộ nh v i hàm getStructuringElement c a OpenCV tr c khi đ a nó vào 2ả ớ ủ ướ ư

b c erode(làm m ng) và dilate(làm dày). đây, v i c u trúc đ c l yướ ỏ Ở ớ ấ ượ ấ ra, sau khi đi qua b c erode, nh ch còn l i các đ ng th ng ho cướ ả ỉ ạ ườ ẳ ặ ngang, b c dilate giúp làm rõ h n các đ ng này.ướ ơ ườ

Page 35: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

35

o Xác đ nh v trí c a b ng đi n đáp án s d ng hàm findContours c a openCVị ị ủ ả ề ử ụ ủcontours, hierarchy = cv2.findContours(mask,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)

max = -1for cnt in contours:    x, y, w, h = cv2.boundingRect(cnt)    if cv2.contourArea(cnt) > max:        x_max, y_max, w_max, h_max = x, y, w, h        max = cv2.contourArea(cnt)

table = img[y_max:y_max+h_max,x_max:x_max+w_max]

Page 36: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

36

o Cu i cùng, chia b ng ra theo các t l nh m c t đ c các ô đáp án m t cách ố ả ỉ ệ ằ ắ ượ ộg n chính xác nh t, sau đó, m i ô đáp án, l i s d ng hàm findContours đ ầ ấ ỗ ạ ử ụ ểxác đ nh ra ký t đ c vi t ô đó.ị ự ượ ế ở

cropped_thresh_img = []cropped_origin_img = []contours_img = []NUM_ROWS = 19START_ROW = 1for i in range(START_ROW, NUM_ROWS):    thresh1 = thresh[y_max + round(i*h_max/NUM_ROWS):y_max + round((i+1)*h_max/NUM_ROWS), x_max + round(w_max/6):x_max +round(w_max/2)]    contours_thresh1, hierarchy_thresh1 = cv2.findContours(thresh1, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)    origin1 = img[y_max + round(i*h_max/NUM_ROWS):y_max + round((i+1)*h_max/NUM_ROWS), x_max + round(w_max/6):x_max +round(w_max/2)]

    cropped_thresh_img.append(thresh1)    cropped_origin_img.append(origin1)    contours_img.append(contours_thresh1)

for i in range(START_ROW, NUM_ROWS):    thresh1 = thresh[y_max + round(i*h_max/NUM_ROWS):y_max + round((i+1)*h_max/NUM_ROWS), x_max + round(2*w_max/3):x_max +round(w_max)]    contours_thresh1, hierarchy_thresh1 = cv2.findContours(thresh1, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)    origin1 = img[y_max + round(i*h_max/NUM_ROWS):y_max + round((i+1)*h_max/NUM_ROWS), x_max + round(2*w_max/3):x_max +round(w_max)]

    cropped_thresh_img.append(thresh1)    cropped_origin_img.append(origin1)    contours_img.append(contours_thresh1)

- Do b ng đi n đáp án có 19 hàng, v y nên chi u d c sẽ đ c chia làm 19ả ề ậ ề ọ ượ ph n, thu đ c 1/19 chi u d c c a b c nh chính là 1 dòng. m i dòng,ầ ượ ề ọ ủ ứ ả Ở ỗ

c l ng ô câu h i có kích th c b ng 1 n a ô đáp án. V y nên sẽ chiaướ ượ ỏ ướ ằ ử ậ chi u ngang thành 6 ph n. Áp d ng findContours ch cho nh ng ô đáp ánề ầ ụ ỉ ữ thu đ c toàn b v t th trong các ô đáp án.ượ ộ ậ ể ở

Page 37: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

37

o Áp d ng thêm đi u ki n nh m đ m b o tính chính xác c a đ u ra:ụ ề ệ ằ ả ả ủ ầfor i, contour_img in enumerate(contours_img):    answer = ['X']    for cnt in contour_img:        if cv2.contourArea(cnt) > 30:            x, y, w, h = cv2.boundingRect(cnt)            if x > cropped_origin_img[i].shape[1]*0.1 and x < cropped_origin_img[i].shape[1]*0.9:                answer = cropped_origin_img[i][y:y+h, x:x+w]                answer = cv2.threshold(answer, 140, 255, cv2.THRESH_BINARY_INV)[1]                break    answers.append(answer)

- V i đi u ki n này, contours ch đ c tính n u có kích th c l n h n 30ớ ề ệ ỉ ượ ế ướ ớ ơ nh m lo i b b t các v t th nhi u. V i các contours tìm đ c, đ khôngằ ạ ỏ ớ ậ ể ễ ớ ượ ể ph i l y vi n ô, ch l y kho ng gi a c a ô đáp án (v trí >0.1*đ dài ôả ấ ề ỉ ấ ả ữ ủ ị ộ ho c <0.9*đ dài ô). K t qu thu đ c nh sau:ặ ộ ế ả ượ ư

Và đây cũng chính là nh đ u vào đ c s d ng đ đ a vào mô hình. V i các nh ả ầ ượ ử ụ ể ư ớ ảđáp án thu đ c trên, ta ti n hành l u vào list answers đ ti n s d ng sau này.ượ ở ế ư ể ệ ử ụ

4.3.2. Nh n d ng đ i t ng (Classification)ậ ạ ố ượM c tiêu c a bài toán ti p theo này, chính là t nh ng hình nh trong list answers, ụ ủ ế ừ ữ ảxác đ nh k t qu A, B, C và D t ng ng v i t ng nh nh m l u l i và so sánh v i ị ế ả ươ ứ ớ ừ ả ằ ư ạ ớđáp án chính xác sau này.

o Load l i weight t model có s n nh m ti t ki m th i gian trainingạ ừ ẵ ằ ế ệ ờIMG_SIZE = 28N_CLASSES = 4network = input_data(shape=[None, IMG_SIZE, IMG_SIZE, 1])

network = conv_2d(network, 32, 3, activation='relu')network = max_pool_2d(network, 2)

network = conv_2d(network, 64, 3, activation='relu')network = max_pool_2d(network, 2)

network = conv_2d(network, 32, 3, activation='relu')network = max_pool_2d(network, 2)

network = conv_2d(network, 64, 3, activation='relu')network = max_pool_2d(network, 2)

Page 38: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

38

network = conv_2d(network, 32, 3, activation='relu')network = max_pool_2d(network, 2)

network = conv_2d(network, 64, 3, activation='relu')network = max_pool_2d(network, 2)

network = fully_connected(network, 1024, activation='relu')network = dropout(network, 0.8)

network = fully_connected(network, N_CLASSES, activation='softmax')network = regression(network)

model = tflearn.DNN(network)

model.load("mymodel.tflearn")

o Ti p theo, ch c n cho toàn b nh trong list answers thu đ c b c trên ế ỉ ầ ộ ả ượ ở ướđi qua model, chúng ta sẽ có đ c k t qu nh mong mu n.ượ ế ả ư ố

letter = ['A','B','C','D']result = []res = []

for i in img_predicts:    if i == ['X']:        res.append('X')    else:        res.append(np.argmax(model.predict(i), axis=-1))

for r in res:    if r == 'X':        result.append('X')    else:        result.append(letter[int(r[0])])

- K t qu : ế ảResult: ['C', 'D', 'A', 'A', 'A', 'B', 'B', 'D', 'C', 'X', 'X', 'X', 'X', 'B', 'D', 'A', 'C', 'C', 'X', 'B', 'C', 'D', 'X', 'A', 'C', 'B', 'A', 'X', 'C', 'B', 'D', 'D', 'X', 'A', 'X', 'X']

o Nh p k t qu cu i cùngậ ế ả ốfinal_res = ['D','D','C','A','C','B','C','A','A','C','A','D','A','A','A','C',            'C','A','B','D','A','D','B','D','C','A','A','D','A','C','B','A','C','A','B','A']

Page 39: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

39

o Ti n hành tính đi m b ng cách so sánh 2 list result và final_resultế ể ằmark = 0.0wrong_answer = 0for i in range(len(result)):    if result[i]==final_res[i]:        mark+=0.277    else:        wrong_answer+=1mark = round(mark,3)o In đi m s lên nh đ u raể ố ả ầ

img_out = cv2.resize(img,(500,800))img_out = cv2.cvtColor(img_out,cv2.COLOR_GRAY2BGR)text = "DIEM SO: "+str(mark)text2 = "SO CAU SAI: "+str(wrong_answer)cv2.putText(img_out,text,(10,60),cv2.FONT_HERSHEY_COMPLEX,0.6,(0,0,255),2)cv2.putText(img_out,text2,(10,80),cv2.FONT_HERSHEY_COMPLEX,0.4,(0,0,255),1)cv2.imshow("image", img_out)cv2.waitKey(0)

o K t qu cu i cùngế ả ố

Page 40: daotao.sict.udn.vndaotao.sict.udn.vn/uploads/2020/08/1596552308-dacs5-ta... · Web viewVề ưu điểm đối với loại phiếu này: Nó có thể in cùng với đề bài làm

40

CH NG 5. ƯƠ K T LU N VÀ H NG PHÁT TRI NẾ Ậ ƯỚ Ể5.1. K t lu nế ậ- Đ ng tr c xu h ng phát tri n c a công ngh thông tin nh vũ bão, vi c áp ứ ướ ướ ể ủ ệ ư ệ

d ng trí tu nhân t o vào các ho t đ ng c a con ng i là vô cùng quan trongụ ệ ạ ạ ộ ủ ườ và b c thi t. Nó sẽ giúp cho con ng i gi m b t gánh n ng v s c kh e, ti t ứ ế ườ ả ớ ặ ề ứ ỏ ếki m đ c th i gian.ệ ượ ờ

- Trong khuôn kh bài t p l n l n này, em đã tìm hi u, nghiên c u và xây ổ ậ ớ ầ ể ứd ng “ NG D NG CH M ĐI M PHI U ĐI N TR C NGHI M”. Tuy ng d ngự Ứ Ụ Ấ Ể Ế Ề Ắ Ệ ứ ụ ch a đ c hoàn thi n, song n u có th i gian phát tri n và hoàn thi n h n thìư ượ ệ ế ờ ể ệ ơ

ng d ng này sẽ r t có ích cho các th y (cô) s d ng ph ng pháp tr c ứ ụ ấ ầ ử ụ ươ ắnghi m trong các bài ki m tra.ệ ể

- Do ki n th c và kinh nghi m v ngôn ng python còn h n ch nên ng d ngế ứ ệ ề ữ ạ ế ứ ụ không th tránh kh i m t s thi u sót nh t đ nh nh : ể ỏ ộ ố ế ấ ị ưo nh đ u vào không theo quy chu n, nên vi c l a ch n các tham s cho Ả ầ ẩ ệ ự ọ ố

các hàm c a openCV r t quan tr ng.ủ ấ ọo T l d đoán chính xác ch a cao. ỉ ệ ự ưo Mã ngu n ch a th c s t i u.ồ ư ự ự ố ưo Hình nh k t qu cu i cùng ch a th c s h u ích.ả ế ả ố ư ự ự ữo Ch a nh n di n đ c đáp án n u ng i làm bài ch nh s a đáp án.ư ậ ệ ượ ế ườ ỉ ử

5.2. H ng phát tri nướ ể- Đ ng d ng có th ho t đ ng hi u qu h n, c n ph i có giao di n tr c ể ứ ụ ể ạ ộ ệ ả ơ ầ ả ệ ự

quan h n dành cho ng i s d ng. Bên c nh đó, hình nh k t qu c n mang ơ ườ ử ụ ạ ả ế ả ầl i nhi u thông tin h n cho ng i ch m bài, ch ng h n nh : Câu tr l i sai ạ ề ơ ườ ấ ẳ ạ ư ả ờbao g m nh ng câu nào, Đáp án chính xác c a câu đó là gì? …ồ ữ ủ

- Có th k t h p v i m t h qu n tr c s d li u giúp qu n lý các thông tin ể ế ợ ớ ộ ệ ả ị ơ ở ữ ệ ảv thí sinh nh : H và Tên, Ngày sinh, S đi n tho i, Email, Ngày ki m tra và ề ư ọ ố ệ ạ ểMã bài thi giúp ng i ch m thu n l i h n trong vi c theo dõi và t ng k t k tườ ấ ậ ợ ơ ệ ổ ế ế qu làm bài.ả

- T i u mã ngu n giúp ch ng trình ch y nhanh h n, tăng t c đ ch m bài.ố ư ồ ươ ạ ơ ố ộ ấ- Phát tri n thêm m t s ch c năng nh : th ng kê d a theo s đi m, câu tr ể ộ ố ứ ư ố ự ố ể ả

l i sai nhi u nh t, t đ ng ch m t t c các nh trong m t th m c…ờ ề ấ ự ộ ấ ấ ả ả ộ ư ụ


Recommended