Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.17 MB, 21 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>Bò mụn CÂ iòn t *************** </b>
<b>BÀN NHắN XẫT CỵA GIO VIấN HNG DN </b>
Giỏo viờn hng dẫn: TS. M¿c Thị Thoa TS. Ph¿m Đức An Sinh viên th c hi n: ự á Vũ Văn Trưßng L p: CK-ớ CĐT01-K62
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">Môn h c: X Lý ọ ử Ành
MĀC LĀC ...2 PHÂN CHIA CÔNG VI C ...à 3 Chương 1: Giới thiáu đề tài...4 Chương 2: Phương pháp giÁi quyết vấn đề ...5 2.1. Thu t toán cậ ủa chương trình ...5 2.2. Các bước thực hi n ...á 6 Chương 3: Kết quÁ đ¿t đưÿc ... 16 Chương 4: Kết luận ... 17 TÀI LI U THAM KH O ... à À 18
<b>2 </b>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">Mơn h c: X Lý ọ ử Ành
Phương pháp thi trắc nghiám từ lâu đã đưÿc các nước có nền giáo d c phát ātriển sử dāng nhằm đánh giá năng lực của học sinh. Theo đó, các máy chấm thi trắc nghiám cũng đưÿc thiết kế để phāc vā công tác ch m thi. Vi c ch m thi b ng ấ á ấ ằmáy s cho kẽ ết quÁ nhanh, chính xác đồng thßi cũng giÁm áp l c cho con ự ngưßi.
Tính ổn định và độ chính xác cao c a h th ng làm cho máy chủ á ố ấm điểm có đưÿc độ tin cậy cao và thưßng đưÿc s d ng nh ng t ch c giáo dử ā á ữ ổ ứ āc và đánh giá l n. ớ
à đây chúng em sử dāng một camera đián tho¿i có kết với máy tính qua internet để ự độ t ng tìm kiếm hình Ánh c a bài ki m tra. ủ ể Sau đó sẽ so sánh câu trÁ lßi trên bài ki m tra vể ới đáp án đúng. Ti p theo s th c hi n chế ẽ ự á ấm điểm, hi n th á ịđáp án cũng như điểm trên hình Ánh của bài kiểm tra. Cuối cùng là sẽ lưu kết quÁ thu đưÿc vào một file để có th d dàng qu n lý. ể ß Á
Cơ chế làm viác: Đưa bài kiểm tra tới vị trí chāp, sử dāng camera trên thiết bị di động chāp l i ¿ Ánh. K t thúc quá trình thu nhế ận Ánh, đưa bài kiểm tra cũ ra và đưa bài mới vào. Dữ liáu Ánh đưÿc tiền xử lý nhằm māc đích lọc nhißu và nâng cao ch t l ng ấ ưÿ Ánh. Sau đó, thơng qua viác xác định 4 đỉnh ta s chu n ẽ ẩhóa nh theo m t t lÁ ộ ỉ á xác định. nh sau chuÀ ẩn hóa đưÿc trích ch n các vùng ọthơng tin: vùng bài làm và vùng chấm điểm. Từ đó thơng tin bài thi sẽ đưÿc xem xét, đánh giá. Tiến hành so sánh thông tin bài thi với đáp án tương ứng, ta sẽ đưa ra đưÿc kết quÁ bài thi. Kết quÁ này sẽ đưÿc lưu l¿ ¿o điềi t u kián thuận lÿi cho vi c tra cá ứu và đánh giá.
<i>Hình 1. 1 </i>Sơ đồ<i> kh i h th ng </i>ố ệ ố
<b>4 </b>
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">Biến đổi phối cÁnh
Chuyển sang Ánh nhị phâ ngưỡng n
Tìm điểm
Chấm điểm và lưu kết quÁ
<b>5 </b>
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">Môn h c: X Lý ọ ử Ành
<b>2.2. Các b°ác thÿc hi n </b>ß− Bước 1:
• Đầu tiên ta s hi n thẽ ể ị Ánh g c trên giao di n rố á ồi thay đổi kích thước cho hÿp lý sau đó tiến hành chuyển nó sang nh màu xám Á(imgGray), imgBlur và imgCanny.
• T¿o một chương trình con (utlis) để lưu trữ các hàm con trong đó có hàm stackImage() Ánh thu đưÿc trên cùng m t c a s ộ ử ố để thu n ậtián theo dõi.
<small> </small>
<i>Hình 2.1 nh xám</i>ả <i>Hình 2.2 nh m</i>ả ờ <i>Hình 2.3 nh canny </i>ả
<b>6 </b>
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">− Bước 2:
• Sau khi có nh canny r i ta s dùng lÁ ồ ẽ ách FindContours để xác định các đưßng viền có trong Ánh và dùng lách DrawContours nữa để vẽ l¿i cỏc òng vin ú trờn nh gc.
ã Khi nh n di n các cậ á ¿nh r i thì tồ a xác định cái nào là hình ch nh t ữ ậbằng cách vi t ế á trong chương trình con.
<b> 7 </b>
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><small>rectCon = utlis.rectContour(contours) </small>
<small>biggestContour = utlis.getCornerPoints(rectCon[ ]) 0</small>
<small>gradePoints = utlis.getCornerPoints(rectCon[ ]) 1</small>
• Tiếp theo thì ta s vi t ẽ ế lánh để nó nh n di n hình chậ á ữ nhật to nhất (phần làm bài, biggestContours) và hình chữ nhật to tiếp theo (phần chấm điểm, gradePoints)
<small>if biggestContour.size !=0 and gradePoints.size !=0:</small>
<small>cv2.drawContours(imgBiggestContours biggestContour,,-1,(0 255 0 20,,),) cv2.drawContours(imgBiggestContours,gradePoints, -1, (255 ,0 0, ,)20) </small>
Hình 2.5 Ph n bài làm và chầ ấm điểm − Bước 3:
• Sau khi đã có tọa độ 4 góc của hình chữ nhật bài làm và chấm điểm rồi thì ta ph i s p x p lÁ ắ ế ¿i điểm tọa độ đó (điểm nào là điểm đầu, điểm cuối và 2 điểm còn l¿i) để khi đổi sang imgWarp nó sẽ khơng bị khơng h p lÿ á.
• Trước tiên ta ph i xem loÁ ¿i điểm ta cần đổi sang Warp
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">[618 500]] #print(myPoints)
[ 794 403 697 1118] #Xi+Yi, print(add) [[-398] [ -5] [ 307] [-118]] #Yi-Xi, print(diff)
Ta s tính xi+yi c a các tẽ ủ ọa độ góc: T ng nh nh t sổ ỏ ấ ẽ là điềm đầu [0], t ng l n nh t s lổ ớ ấ ẽ à điểm cuối [3]. Tính yi-xi của các tọa độ góc: hiáu nh nh t sỏ ấ ẽ là điểm thứ 2 [1], hi u l n nhá ớ ất sẽ là điểm thứ 3 [2] Cuối cùng ta lưu các điểm sau khi đã sắp x p vào 1 danh sách ếtrong chương trình con.
• Khi đã sắp xếp các điểm rồi ta t¿o ma tr n chuyậ ển đổi phần làm bài và ph n chầ ấm điểm thành imgWarpColored.
<small> </small>
<b>10 </b>
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12"><i>Hình 2.6 imgWarp bài làmHình 2.7 imgWarp của Grade </i>
− Bước 4:
• Tiếp theo khi thu đưÿc hình ch nh t bài làm bao gữ ậ ồm các đáp án ắ tr c nghiám r i ta phồ Ái xác xem ngưßi làm đánh dấu vào đáp án nào.• Phần đáp án nào khơng đưÿc đánh dấu sẽ có ít điểm Ánh khác 0 ít
hơn. Nhß vậy ta có thể xác định đưÿc vị trớ ỏp ỏn ca ngòi lm. ã Ta phi chuy n imgWarpColored sang màu xám và áp dể āng threshold
• Ta dùng def splitBoxes trong chương trình con Utlis. • Ta có 5 câu h i m i câu hỏ ỗ ỏi có 5 đáp án suy ra ta cần chia
imgThresh thành 25 h p nhộ ỏ
• Đầu tiên ta tách theo chi u ngang thành 5 ph n tề ầ ử trước sau đó mới tiếp t c tách ti p t ng hàng thàng 5 cā ế ừ ột.
<b>11 </b>
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">[3389. 2504. 2286. 2480. 2936.] [9755. 2522. 8708. 2432. 3014.] [3348. 8769. 2294. 2424. 2867.] [3848. 9567. 2765. 2800. 3187.]]<small> </small>
<small> </small>
<b>12 </b>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">Từ code trên ta ra đưÿc: [[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.] [1. 0. . 0. 0.] 1[0. 1. 0. 0. 0.] [0. 1. 0. 0. 0.]]
<b>13 </b>
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">Môn h c: X Lý ọ ử Ành− Bước 5:
ã Khi bit c ỏp ỏn ca ngòi lm đúng hoặc sai mấy câu cũng như biết điểm rồi ta cần hi n th nó lên nh gể ị Á ốc.
• Ta s t o hình trịnẽ ¿ màu xanh lá cây để đè lên câu tr lÁ ßi đúng, màu đỏ cho câu trÁ l i sai, màu xanh nß ước biển cho câu không đánh dấu hoặc đánh nhiều đáp án trong 1 câu hỏi
• Để t¿o ra hình trịn để đè lên Ánh g c thì ph i bi t tố Á ế ọa độ độ tâm và bán kính của hình trịn đó. Để ết đưÿ ọa độ bi c t tâm của hình trịn ta sẽ đi xác định tọa độ tâm c a hủ ộp (box)
• Ta có thể xác định nó bằng cách xác định kích thước ngang và kích thước dọc của hình ch nhữ ật thơng qua kích thước của
imgWarpColored
<small> </small>
<b>14</b>
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">• Bằng cách t¿o 1 Ánh đen từ imgWarpColored
<small>imgRawDrawing = np.zeros_like(imgWarpColored) </small>
<small>imgRawDrawing = utlis.showAnswers(imgRawDrawing, myIndex ,</small>
<small>grading, ans questions choices ,,</small>
<small>invmatrix = cv2.getPerspectiveTransform(pt2 pt1) imgInvWarp ,</small>
<small>= cv2.warpPerspective(imgRawDrawing, invmatrix (widthImg ,,</small>
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">-Bước 6: Lưu kết qu và Á đánh giá điểm số
Sau khi thu đưÿc nh Á đã đưÿc in đáp án đúng kèm theo điểm số ta ti n hành lế ưu Ánh vào file mới có tên anhbaithi.jpg, ng th i đồ ß cũng in ra các mức đánh giá với số điểm mà học sinh làm đưÿc.
<small> </small><b>17</b>
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">Môn h c: X Lý ọ ử Ành
Từ k t qu th c nghi m ta có th th y r ng, k t quế Á ự á ể ấ ằ ế Á thu đưÿc theo m c ātiêu của đề bài đề ra: s d ng mử ā ột camera đián tho i có k t v i máy tính qua ¿ ế ớinternet để lấy mẫu bài ki m tra. Saể u đó sẽ tiến hành phân tích và so sánh câu trÁ lßi trên bài ki m tra vể ới đáp án đúng. Ti p theo s th c hiế ẽ ự án chấm điểm, hi n áthị đáp á cũng như điển m trên hình Ánh của bài kiểm tra, đồng thßi cũng đưa ra các đánh giá về mức độ điểm. Cu i cùng là số ẽ lưu kết qu thu Á đưÿc vào một file để có th d dàng qu n lý. ể ß Á
Chương trình đ¿t độ chính xác cao, thßi gian xử lý nhanh với điều ki n l y má ấ ẫu tốt.
Ngày nay kh nÁ ăng ứng d ng vào th c t c a hā ự ế ủ á th ng chố ấm thi tr c nghi m s ắ á ửdāng camera là rất kh quan. Māc tiêu phát tri n là thêm Á ể các tính năng chưa hồn thián để tích h p toàn b h th ng thành m t kh i th ng nh t, ÿ ộ á ố ộ ố ố ấ ổn định, linh động, đÁm bÁo tính t ng, tự độ ốc độ chấm thi càng nhanh càng t t. Có ố như vậy, sÁn ph m m i có tính c nh tranh và th c ti n trên th ẩ ớ ¿ ự ß ị trưßng.
<b> 18 </b>
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">Trên đây, chúng em đã trình bày tồn bộ ội dung báo cáo <sử n dāng camera chđể ấm điểm thi tr c nghi m tắ á ự động=. Báo cáo đã đề ậ ớ c p t i m t s k ộ ố ỹthuật x lý ử Ánh cơ bÁn và nâng cao nhằm nâng cao chất lưÿng, xử lý và nhận d¿ng các đặc trưng trong Ánh ứng d ng trong vi c ch m thi tr c nghi m. ā á ấ ắ á
Mẫu phi u thi sế ử dāng trong thuận toán đề xu t là mấ ẫu chuẩn. Các mẫu khác có những đặc điểm tương tự như mẫu này thì v n có th áp dẫ ể āng đưÿc thuật toán đã đề xuất để chấm điểm, tuy nhiên về tốc độ xử lý và độ chính xác với các mẫu khác thì khơng đÁm bÁo cao như mẫu chuẩn đang khai thác.
Do , v i các m u khác thì ph i phát tri n thu n tốn nhđó ớ ẫ Á ể ậ ận d ng d a trên ¿ ựcác đặc trưng riêng của từng mẫu(hình dáng, kiểu đáp án, etc...). tô
Một cách làm khác đơn giÁn hơn là t¿o ra mẫu phiếu thi có các đặc trưngtương ự ớ t v i mẫu phiếu đang sử dāng trong đề tài:
• Có các vùng ch a thơng tin n m trong các khung hình ch nhứ ằ ữ ật • Phần trích xuất thơng tin có các đặc điểm tương quan tỷ lá với
phiếu chuẩn đang dùng.
• Chất lưÿng phi u ph i m b o ế Á đÁ Á để quá trình thu nh b ng camera Á ằkhông nh Á hưáng t i chớ ất lưÿng các bước x lý sau ử đó.
<small> </small><b>19 </b>
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">Môn h c: X Lý ọ ử Ành
1. Bài giÁng xử lý Ánh – TS. M¿c Thị Thoa
2. Digital Image Processing Using MATLAB - Rafael C. Gonzalez 3. Digital image processing-Pearson (2018) - Gonzalez, Rafael C. Woods,
Richard
4. Opencv2 computer vision application programming cookbook Robert –Laganiere
<b>20 </b>
</div>