Cấu trúc phần cứng của hệthống: Tổng quan hệthống
Hình 5. H 29 ệthống cấu trúc ph n cứng ầ
Các chai nước sau quá trình chiết rót và đóng nắp s ẽđược đưa vào hệ thống ki m ể tra chất lư ng trên băng tợ ải. Trong h ệthống này có thểbao gồm các loại cảm biến hồng ngoại IR hay cảm biến tiệm cận hoặc cũng có thểlà cảm biến siêu âm sẽcó nhiệm vụ phát hiện sự xuất hiện của các chai nư c trướ ớc Camera. Khi mà các cảm biến này phát hiện có chai đi qua, hệ ố th ng sẽ đồ ng thời khở ội đ ng camera thông qua Computer. Hình ảnh được thu nh n thông qua các máy ậ ảnh có độ phân giải và tốc độcao và giao tiếp với các phần mềm lập trình xử lý hay các công cụ thu nhận hình ảnh khác. Từ đó sẽ xây d ng nên mự ột hệ thống xử lý ảnh dựa trên thời gian thực v i mớ ục đích xác định các lỗi trong phần nắp chai.
Chú thích: Khung mô hình
Motor dẫn đ ng băng tải ộ Motot gạt cocacola l i ỗ
Biến tr : Ph n hở ả ồi v trí thanh gị ạt
Buồng tối: Bên trong có camera và h thệ ống đèn led chiếu sáng Đế đặ t máy tính Chai Cocacola Thanh gạt chai l i ỗ Băng tải Hộp điện H x ệ ửlý ảnh trong hệthống H ệCamera Hình 5. 31 Camera Basler Độ phân gi i (Resolution) ả 1920px x 1080px Kíc thước c m bi n (Sensor Size) ả ế 4,2mm x 2,4mm Cảm biến hình ảnh (Sensor Type) 1/3.7" CMOS Tốc độkhung hình (Frame Rate) 26fps
Interface (K t nế ối) USB 3.0
Hình 5. 32Vùng làm việc Field of View
Ta có được sensor size (SS) đã cho sử ụ d ng v i camera Basler trong h th ng là ớ ệ ố 2,4 mm. Từ đây là dựa vào quy tắc tam giác đồng dạng tính được giá tr tiêu cị ự của ống kính Focal Length (FL): FL=WD*SS/FoV.
Trong đó: + FoV (Field of View) là Diện tích vùng làm việc ki m tra mà Camera ể quan sát được
+ Working Distance (WD): Là khoảng cách từ ặ m t trước của lens đến vùng đối tượng
+ Sensor size (SS): Là kích thước của cảm biến
Việc ch n tiêu cọ ự ủ c a ống kính sao cho đáp ng đưứ ợc yêu cầu của luận văn s ẽphụ thuộc vào khoảng cách WD, WD trong th c t có thự ế ể là khoảng cách các kỹ sư tự ý thiết lập n u không bế ị giới hạn về ph n c ng (kầ ứ ỹ sư thích đ t camera cách đặ ối tượng bao nhiêu cũng được), hoặc cũng có thể do yêu c u cầ ủa ph n cầ ứng là c n ầ cách m t nặ ền đ t đ i tưặ ố ợng cần kiểm tra một khoảng cách bao nhiêu đó.
Trong bài luận văn này này ta ví dụ ta s ẽ đặt camera cách đ i tưố ợng là chai cần nhận dạng v i khoớ ảng cách là 250mm.V y giá tr tiêu c c a ốậ ị ự ủ ng kính FL là: FL= × = × ,= 1,18 mm
Hình 5. 33 Các thông sốhoạ ột đ ng của Camera trong h thệ ống b, Hệ thống chiếu sáng trong luận văn
Hiệu quả của hệthống xử lý ảnh ph thuộc vào chất lượụ ng hình ảnh thu được. Hình ảnh có chất lượng cao cho phép h th ng phân tích m t cách chính xác các thông ệ ố ộ tin từ đối tượng kiểm tra, đem lại những kết quả đáng tin cậy của hệ thống. Chất lượng hình ảnh thu được trong hệ thống x lí hình nh ph thu c rử ả ụ ộ ất cao vào cấu hình ánh sáng (màu sắc, góc đ , và cư ng độ ờ ộ ánh sáng đư c dùng đợ ể chi u sáng), ế quyế ịt đ nh đến chất lượng hình ảnh.
Các thi t bế ị chiếu sáng nên tối ưu hóa độ tương phản của đ i tưố ợng kiểm tra trong khi giảm thiểu độtương phản của các ph n còn lầ ại, nh ờđó cho phép hệ thống “nhìn thấy” rõ các v trí. Hình ị ảnh đ i tượng kiểm tra có ố độ tương phản cao sẽ đơn giản hóa và cải thiện độchính xác của h thệ ống; ngược lại hình ảnh vớ ội đ tương phản thấp và phân bố ánh sáng không đ ng đ u đòi hồ ề ỏi nhiều th i gian và hiờ ệu suất xử lý hơn. Cấu hình thiết bị chiếu sáng phù hợp phụ thu c vào ộ kích thước c a các ủ phần c n kiầ ểm tra, hình d ng, tính ch t b m t, và các yêu cạ ấ ề ặ ầu kĩ thuậ ủt c a thi t ế b . Vị ới nhiều lựa chọn về bước sóng (màu sắc), vùng nhìn (kích thước), và hình dáng tùy ch n có s n, thiọ ẵ ết bị chiếu sáng có thểđược thay đ i đổ ể phù h p theo yêu ợ cầu ứng dụng cụ . thể
Xây dựng thuật toán phân lo i chai cocaạ
Đố ới v i bài toán ki m tra nh n d ng l i trên dây chuyể ậ ạ ỗ ền đóng chai cocacola sẽ có 2 giai đoạn chính:
+ Giai đoạn kiểm tra hình dáng chai (empty bottle) + Giai đoạn chiết xuất nước trong chai (filled bottle)
Ở trong c th luụ ể ận văn này tôi sẽ ậ t p trung vào giai đoạn th hai c a h th ng là ứ ủ ệ ố chai đoạn chi t rót. ế Trongđó sẽ có 3 thành phần quan trọng để kiểm tra và đưa ra l ỗi:
+ Nắp chai + Nhãn dán
+ Mực nước sau khi chi t rót ế
T ừ các đề xuất trên của bài toán, sẽ có các phương pháp thuật toán sau để giải quyết và tối ưu bài toán
Phương pháp 1: (Sử thuật thu t toán Template Matching) ậ Thuật toán nhận dạng lỗi chai d a trên Template Matching: ự S dử ụng phương pháp khớp mẫu (Matching Template Method):
Phương pháp khớp m u là mẫ ột kĩ thu t đậ ể tìm các vùng tương đồng của m t hình ộ ảnh mẫu được ch n có trong mộọ t hình nh lả ớn hơn.
Trong phương pháp này ta sẽcó 2 thành phần chính:
+ Source Image (Hình ảnh nguồn): Hình ảnh đầu vào chứa đối tượng được quan tâm
+ Template Image (Hình ảnh mẫu): Hình ảnh bán vá trong quá trình phân tích s ẽ được dùng đểtìm kiếm so sánh với Source Image.
Template Image sẽđư c “slide” (trượợ t) từ trái sang ph i, tả ừ trên xuống dưới trong Source Image để so sánh sự tương đồng với nhau và tại m i v trí, m i m t sỗ ị ỗ ộ ố liệu s ẽ được tính toán để thểhiện mức độphù hợp của Template. Phương pháp này sẽ chuyển về hình ảnh thang độ xám, t i m i v trí, m t giá tr s đư c tính toán đạ ỗ ị ộ ị ẽ ợ ể thể ệ hi n mức độ ố t t hay tệ ạ t i vị trí đó (ho c cũng có thặ ể ể hi u là xét mức độ tương đồng c a b n vá hình nh v i t ng khu v c c a hình nh ngu n). ủ ả ả ớ ừ ự ủ ả ồ
Dựa trên phương pháp trượt, giả s ử ảnh đ u vào có kích thưầ ớc (WxH) và hình nh ả mẫu có kích thước là (wxh), thì hình ảnh đầu ra (Result) s ẽcó kích thước (W-w+1, H-h+1).Nói một cách khác, với mỗi giá trị ị v trí c a T trên I, ta sủ ẽ lưu giữgiá trị s ốliệu trong ma trận kết quả thu được R. M i m t v trí (x,y) trong R ch a m t s ỗ ộ ị ứ ộ ố liệu phù h p biợ ểu di n sễ ự tương đồng.
Để th c hi n Template Matching, Open CV cung c p function ự ệ ấ cv2.MatchTemplate():
Result= cv2.matchTemplate(source, template, method) Trong đó:
source – hình ảnh chứa đ tưối ợng được quan tâm;
template – “object patch” được dùng để tìm ki m trong source; ế
method – phương pháp so sánh, gồm cv2.TM_CCOEFF, cv2.TM_SQDIFF, CV_TM_CCORR…;
result – ma tr n ch a k t qu tính toán t i m i vậ ứ ế ả ạ ỗ ị trí để thể ệ hi n mức độ phù h p ợ của Template.
Sau khi nhận được kết quả thu được từ ma tr n R, ta s s d ng function ậ ẽ ử ụ cv2.minMaxLoc()
minVal, maxVal, minLoc, maxLoc = cv2.minMaxLoc(matrix) Trong đó:
minVal, maxVal giá trị – nhỏnhất và lớn nhất của matrix;
minLoc, maxLoc – tọa độ ủ c a giá tr minVal và maxVal trong matrix, ị ở ạ d ng (x, y).
+ Loc max (lọc dãn): đáp ứng tại từng điểm ảnh là giá trị ớ l n nhất sau quá trình xếp hạng các giá trị ủ c a điểm ảnh lân cận. Tác dụng: Tìm các điểm sáng nhất của ảnh
+ Loc min (lọc co): đáp ứng t i tạ ừng điểm ảnh là giá tr nh nh t sau quá trình x p ị ỏ ấ ế hạng các giá trị ủ c a điểm ảnh lân cận. Tác dụng: Tìm các điểm t i nh t c a nh ố ấ ủ ả Sau đó lấy giá tr này làm góc trên cùng phía bên trái c a hình ch nh t và l y (w, ị ủ ữ ậ ấ h) làm chiều rộng và chiều cao c a hình chủ ữ nh t. Hình chữậ nhât đó là khu vực mẫu của chúng ta.
*Thuật toán quá trình nh n di n lậ ệ ỗ ắi n p chai:
Correction
Accept
Yes Áp dụng thuật toán Template matching If Area==Ref.Area Reject No Hình ảnh được thu nhận (Hình ảnh được chuy n ể v thang xám) ề Tính toán diện tích các khu vực đối tượng
được liên k t (ROI)ế
Lấy phần bù hình ảnh (Complement Image) Ảnh nh ịphân (Binary Image) Phân ngưỡng hình ảnh (Thresholding) Biểu di n các phép ễ toán hình học (Perform Morphological
Hình trên biểu diễn trên sơ đồ kh i là quá trình phân tích xử lý hình nh. Hình ố ả ảnh thu được là hình nh có các giá tr màu xám trong kho ng 0-255. ả ị ả Giá trị 0 sẽ đạ i diện cho màu đen, giá trị 255 sẽ đạ i diện cho màu trắng và ở giữa các giá trị ừ t 1 đến 254 s i di n cho các màu xám khác nhau giẽ đạ ệ ữa đen và trắng.Hình ảnh tiếp tục được chuyển đổi thành hình ảnh nhị phân theo phương pháp áp dụng các ngưỡng phù hợp.Khu vực được quan tâm (ROI) region of interest được tính toán và sẽ được so sánh với các m u ảẫ nh tham chi u hoàn h o.D a trên k t qu so sánh ế ả ự ế ả này, việc chấp nhận hay lo i b ạ ỏ đối tượng lỗ ẽi s được quyế ịt đnh.
* Kết qu c a vi c phân tích x lý hình ả ủ ệ ử ảnh
Hình 5.4 cho thấy hình ảnh chuyển vềthang màu xám thu đc (a), ảnh nh phân (b), ị ảnh ph n bù (c) và nh sau khi trảầ ả i qua các phương pháp lọc nhiễu để cho ra m t ộ hình mẫu hoàn hảo (d).Hình ảnh mức xám thu đư c đượ ợc chuyển đổi thành ảnh nhị phân bằng cách đặt các giá trị ngưỡng phù hợp.Khi đó khu vực ph n nắp sẽ ầ được chuyển đổi thành vùng màu đen (vì có giá trị nhị phân b ng 0) và các khu ằ vực còn lại được chuyển đổi thành vùng trắng ( vì có giá trị nhị phân bằng 1).Sau đó hình ảnh này sẽ được chuy n thành lấy phầể n bù như hình (c).Với các hình ảnh này sẽ b ị nhiễu từ ảnh hưởng của các môi trường ánh sáng và cần được lo i bỏ. Ta ạ s ẽ áp dụng các phương pháp l c Sobel, Gauss,Median Filters… đọ ểloại bỏ nhiễu của ảnh giúp cho hình ảnh rõ ràng hơn.
Hình 5. 35 (a) Ảnh mẫu thu được (b) Ảnh nhịphân (c) Ảnh lấy ph n bù (d) ầ Ảnh sau l c nhiọ ễu
Hình ảnh kết quả trên cho thấy chỉ bao g m mộồ t liên k t gi a hai thành phế ữ ần nắp chai và ph n mác cầ ủa nắp (tamper) và liên kết đó được th hiể ện trong khu vực màu trắng của phần nắp.Khi đó khu vực ph n tr ng củầ ắ a n p sẽ ắ được mang ra tính toán.Ban đầu m t ph n m u t t của chai sẽộ ầ ẫ ố đư c đưa vào cho viợ ệc thu nh n hình ậ ảnh tham chiếu và các bư c phân tích bên trên đướ ợc th c hi n cho m u hình ảnh ự ệ ẫ chai cụ thể đó và được xét đ n đế ể ạ ỏ lo i b nhiễu của hình ảnh kết quả như hình ảnh tham chiếu trong suốt quá trình ki m tra.ể
Hình 5.36 (a) Ảnh thu được b thiếu (thiị ếu nắp) (b) Ảnh nhị phân (c) Ảnh l y phấ ần bù (d) Ảnh sau lọc nhiễu
Hình 5. 37 (a) Ảnh thu dược b thi u ( thi u tamper) (b) nh nh phân (c) nh lấy ị ế ế Ả ị Ả phần bù (d) Ảnh sau lọc nhiễu
Hình ảnh 5.5 và 5.6 cho ta thấy hình ảnh nắp chai hoặc phần tem bên dướ ịi b thi u. ế Vì vậy, khu vực đư c xét đ n (ROI) đượ ế ợc tính toán và so sánh với khu vực của hình ảnh tham chi u và cho ra k t qu khác bi t quá l n. Khi đó thuật toán tiếp tục ế ế ả ệ ớ được phát triển để hiển th thông báo lỗi ra màn hình. ị
Hình 5. 38 (a) Ảnh thu được b thiếu (Nị ắp và phần tem b tách kh i nhau) (b) ị ỏ Ảnh nhị phân (c) nh l y phẢ ấ ần bù (d) Ảnh sau lọc nhiễu
Hình 5.7 cho ta thấy ph n nầ ắp và phần tem bên dưới bị tách khỏi nhau và bịchia thành 2 phần riêng biệt. Vì vậy trong trường hợp này ROI đã bị chia làm hai thành phần khu vực khác nhau. D a ự trên các phân tích bên trên sẽ đưa ra kết quả như hình 5.8.
Hình 5.39: Ảnh thu nhận bị ừ t chối do lỗi
Để có đượ ực s chính xác trong h th ng kiệ ố ểm tra, ánh sáng môi trường s là m t ẽ ộ thách thức lớn tạo ra thành phần nhiễu trong hình ảnh dẫn đến sự phức tạp trong
quá trình đứa ra việc phát triển các thuật toán cho phù hợp. Về cơ bản đ ọể l c được tối đa nhi u thì môi trưễ ờng của dối tượng cần đư c đợ ặt trong không gian tối Phương pháp 2: Thuật toán s d ng Edge Detection (tìm biên c nh) ử ụ ạ
Thu nhận nhả Tiền xửlý (Lọc nhiễu) Phân đoạn ảnh (Tìm biên) Kĩ thuật hình thái h c ọ (Morphological techniques) Phát hiện các cạnh dọc của chai (Detection Vertical Lines)
Phát hiện các đường ngang (horizontal line) để xác
định đường qua n p chai và mắ ực nước
Xác định đường k ẻ
ngang trung bình (Average Line) So sánh hiệu khoảng cách của
đư ng trung bình và đườ ờng k ẻngang mực nước với giá trị
khoảng cách chuẩn ban đầu
Under fill level Over fill level Normal So sánh hiệu khoảng cách của
đư ng trung bình và đườ ờng k ẻ đỉnh n p v i giá tr kho ng cách ắ ớ ị ả chuẩn ban đầu Normal Unpacked Cap No cap Khoảng cách giữa
hai đường biên d c ọ Đ
Thuật toán x lý nh n dạng nắử ậ p chai và mực nước trong chai:
Công việc đ u tiên đầ ể ệ ố h th ng nhận dạng phân loại nắp chai và mực nư c đượớ c thực thi là xác định thuật toán nhận dạng vật thể là chai cocacola có tồn tại trong vùng ROI đang xét hay không.Bằng việc nh n dạậ ng đư c các đượ ờng line thông qua các thu t toán ti n biên cậ ề ạnh (edge detection), từ đó ta sẽ xác định các đường vertical có trong vùng ROI.Sử dụng toán t vecto Vec4i tử ừcác đường vertical line đã xác định bưở ớc trư c đ xác đớ ể ịnh tọa độ khoảng cách để ừ t đó đưa ra kết quả có xuất hiện chai trong khung hình ROI hay không.Bước tiếp theo ta xác định các đường horizontal line (các đư ng ngang) là các đườ ờng ngang định nghĩa của n p ắ chai mực nước trong chai.Từ đó sẽ xác đ nh đưị ờng tham chiếu hay đường trung bình (được xác đ nh trư c trong điị ớ ều kiện là chai chính xác) để ừ t đó làm tham chiếu cho tất cả các chai còn lại trong hệ thống.Kết quả s ẽ được th hi n ể ệ ở hình … Algorithm: Thu nhận hình ảnh Tiền xử lý để kh ửnhi u ễ Chuyển v nh nhề ả ị phân Tìm biên củ ảa nh Xác định đường line thẳng đứng
FoundBottleWidth = LineVerticalRight – LineVerticalLeft If (FoundBotleWidth = BottleWidth)
Bottle Found (Tìm th y chai)ấ Xác định đường nằm ngang LineTB = RoiCheck/2
CapDetection = LineCap – LineTB LevelDetection = LineLevel – LineTB If (MinCap < CapDetection <MaxCap)
If (MinLevel < LevelDetection < MaxLevel) Cap and Level fine
Else
Cap fine, level not fine Else
If (MinLevel < LevelDetection < MaxLevel) Cap not fine, level fine
Else
Cap and Level not fine Else
No Bottle Found Kết quảthực nghiệm
Hình 5. K41 ết quả chương trình báo đạt khi nhận di n thành công nắp chai và mực ệ nước
Hình 5.42 Kết quả chương trình báo lỗi nhận được nắp chai nhưng mực nước không chính xác
Hình 5.43 Kết quả chương trình báo lỗi khi không tồ ạ ắn t i n p chai và mực nước không chính xác
Hình 5. K44 ết quả chương trình báo lỗi khi n p chai b l p lệch và mựắ ị ắ c nước không chính xác
*KẾT LUẬN CHUNG 2 PHƯƠNG PHÁP TRÊN
Phương án Template Matching Edge detection
Ưu điểm + Thuật toán đơn giản dễ ử ụ s d ng +Thu t toán có th kết ậ ể hợp đồng thời việc kiểm tra nắp và mực nước + Độ chính xác được c i ả thiện trong môi trường ánh sáng tốt
Nhược điểm + Điều kiện môi trường th c ngiệm ự phải trùng khớp với ảnh mẫu trong b d u ộ ữliệ
+ Chỉ có thể nhận lỗi đượ ừc t ng chai + Độ ổn định c a h th ng thấp khi ủ ệ ố