Xử lý ảnh trong C#

Một phần của tài liệu Điều khiển cánh tay robot phân loại sản phẩm theo màu sắc dùng xử lý ảnh (Trang 25)

2 .1Giới thiệu về xử lý ảnh

2.4Xử lý ảnh trong C#

2.3 .2Độ phân giải của ảnh

2.4Xử lý ảnh trong C#

Thông thường xử lý ảnh được lập trình trên các ngôn ngữ thuộc họ C…, lý do đơn giản vì các ngôn ngữ này hỗ trợ con trỏ (pointer) nhằm truy cập trực tiếp và các ô nhớ, giúp quá trình xử lý ảnh được nhanh hơn thay vì truy cập một cách gián tiếp.

- Mục đích của xử lý ảnh là:

+ Tăng cường, phục hồi, nâng cao chất lượng ảnh

- Các phép xử lý thƣờng áp dụng trên ảnh nhị phân, hoặc ảnh mức xám - Có 2 miền xử lý chính: + Không gian + Tần số - Có 3 loại xử lý chính: + Xử lý trên điểm ảnh + Xử lý lân cận

+ Xử lý toàn cục (thường được xử lý trên miền tần số) - Những kiến thức cơ bản liên quan:

+ Không gian màu HSV

+ Cơ bản về ảnh số + Cách biểu diễn ảnh số + Độ phân giải ảnh, màu + Ngôn ngữ lập trình

2.4.1 Một số kỹ thuật trợ giúp xử lý ảnh

Kỹ thuật lọc số.

Chất lượng hình ảnh kém do rất nhiều nguyên nhân như do nhiễm điện từ của máy thu hay chất lượng bộ số hóa kém. Nhiễu ảnh số được xem như là sự dịch chuyển nhanh của tín hiệu thu nhận trên một khoảng cách ngắn. Về mặt tần số, nhiễu ứng với các thành phần tần số cao trong ảnh. Như vậy để xử lý nhiễu ta có thể lọc các thành phần tần số cao. Việc lọc dựa vào tính dư thừa thông tin không gian: các pixel lân cận có thể có ảnh gốc. Tùy theo cách tổ hợp điểm đang xét với các điểm lân cận mà ta có kỹ thuật lọc tuyến tính hay kỹ thuật lọc phi tuyến. Điểm ảnh chịu tác động của biến đổi là điểm ở tâm của mặt nạ. Các kỹ thuật lọc này được trình bày kỹ trong phần làm trơn ảnh.

2.4.2 Biên và các phƣơng pháp phát hiện biên

Biên là vấn đề quan trọng trong trích chọn đặc điểm nhằm tiến tới hiểu ảnh. Cho đến nay chưa có định nghĩa chính xác về biên, trong mỗi ứng dụng người ta đưa ra các độ đo khác nhau về biên, một trong các độ đo đó là một độ đo về sự thay đổi đột ngột về cấp xám.

Ví dụ: Đối với khung ảnh đen trắng, một điểm được gọi là điểm biên nếu nói là điểm đen có ít nhất một điểm trắng bên cạnh. Tập hợp các điểm biên tạo nên biên hay đường bao của đối tượng. Xuất phát từ cơ sở này người ta thường sử dụng hai phương pháp phát hiện biên cơ bản:

Phương pháp phát hiện biên trực tiếp: Phương pháp này làm nổi biên dựa vào sự biến thiên mức xám của ảnh. Kỹ thuật chủ yếu dùng để phát hiện biên ở đây là kỹ thuật lấy đạo hàm. Nếu lấy đạo hàm bậc nhất của ảnh ta có các kỹ thuật Gradient, nếu lấy đạo hàm bậc hai của ảnh ta có kỹ thuật Laplace. Ngoài ra còn có một số các tiếp cận khác.

Phát hiện biên gián tiếp: Nếu bằng cách nào đó ta phân được ảnh thành các vùng thì ranh giới giữa các vùng đó gọi là biên. Kỹ thuật tìm biên và phân vùng ảnh là hai bài toàn đối ngẫu nhau vì tìm biên để thực hiện phân lớp đối tượng mà khi đã phân lớp xong nghĩa là đã phân vùng được ảnh và ngược lại, khi đã phân

vùng ảnh đã được phân lớp thành các đối tượng, do đó có thể phát hiện được biên. Phương pháp phát hiện biên trực tiếp tỏ ra khá hiệu quả và ít chịu ảnh hưởng của nhiễu, song nếu sự biến thiên độ sáng không đột ngột, phương pháp tỏ ra kém hiệu quả, phương pháp phát hiện biên gián tiếp tuy khó cài đặt, song lại khá tốt trong trường hợp này. Sự khác biệt cơ bản giữa hai phương pháp này là: Phương pháp phát hiện biên gián tiếp cho ta kết quả là ảnh biên, còn phương pháp phát hiện biên trực tiếp cho ta kết quả là đường biên.

2.4.3 Biến đổi Hough tìm hình chữ nhật

Xét một hình chữ nhật với các đỉnh P1 = (x1, y1), P2 = (x2, y2), P3 = (x3, y3) và P4=(x4, y4), với P1P2 và P3P4 hai mặt song song với chiều dài a, cũng như P2P3 và P4P1 với chiều dài b. Ngoài ra, chúng ta hãy giả định rằng gốc của hệ tọa độ nằm ở trung tâm của hình chữ nhật.

Hình 2.7 Hình chữ nhật có gốc tọa độ nằm ở giữa

Hough Transform (HT), có thể được sử dụng để phát hiện các hình dạng tùy ý (kể cả hình chữ nhật). Tuy nhiên, một hình chữ nhật chung có 5 thành phần: hai tọa độ của các trung tâm, chiều rộng, chiều cao và hướng. Điều này sẽ đòi hỏi bộ nhớ và tính toán mạnh.

Một số công việc đã được thực hiện về mô tả hình dạng trong không gian Hough. Rosenfeld và Weiss đã chứng minh rằng một lồi đa giác là duy nhất được xác định bởi các đỉnh của nó (trên thực tế, những đỉnh tạo thành cạnh lồi của đa giác). Tuy nhiên, chúng ta phải đối mặt với một vấn đề khác nhau: phát hiện hình chữ nhật trong hình ảnh có chứa một số đối tượng. Một hình chữ nhật có liên hệ hình học cụ thể, có thể được trực tiếp phát hiện trong không gian Hough hình ảnh của hình chữ nhật trong

Hình 2.8 Hình chữ nhật trong không gian Hough.

Bốn đỉnh được dán nhãn là H1 = (ρ1, θ1), H2 = (ρ2, θ2), H3 = (ρ3, θ3) và

H4=(ρ4, θ4), tương ứng với bốn cạnh của hình chữ nhật (P2P3, P1P4, P3P4 và P1P2, tương ứng). Có thể được nhận thấy bốn đỉnh đáp ứng cụ thể liên hệ hình học:

1. Xét theo cặp: cặp thứ nhất là các đỉnh H1 và H2, tại θ = α1, thứ hai là các đỉnh H3 và H4, tại θ = α0.

2. Hai đỉnh thuộc cùng một cặp là đối xứng so với trục θ, nghĩa là ρ1 + ρ2= 0 và ρ3 + ρ4= 0.

3. Hai cặp được phân cách bằng Δθ = 900 ở trên trục θ, nghĩa là | α1 – α0 | = 900 4. Chiều cao của hai đỉnh trong cùng một cặp là giống hệt nhau, và đại diện cho chiều dài của đoạn đường tương ứng, ví dụ, C (ρ1, θ1) = C (ρ2, θ2) = b và C (ρ3, θ3) = C (ρ4, θ4) = a.

5. Khoảng cách theo chiều dọc (trục ρ) giữa đỉnh trong mỗi cặp được chính xác các cạnh của hình chữ nhật, tức là, ρ1 – ρ2 = a và ρ3 – ρ4 = b.

Những mối liên hệ trên có thể không đúng nếu có là những cấu trúc khác hiện diện trong hình ảnh, bởi vì cạnh liên quan đến nhiễu hoặc các công trình khác có ảnh hƣởng toàn cục trong hình ảnh Hough. Đặc biệt, mối liên hệ 1, 2 và 3 sẽ mạnh hơn trong sự hiện diện của các cấu trúc khác, và khám phá mạnh mẽ trong công việc này để phát hiện hình chữ nhật trong hình ảnh.

+ Thuật toán tìm hình chữ nhật:

Ý tưởng cơ bản của thuật toán là để tìm kiếm mỗi điểm ảnh (x, y) của hình ảnh, tính toán HT của cạnh hình ảnh trong một khu vực nhất định tâm tại (x, y), tìm đỉnh có liên quan của HT, và sử dụng các điều kiện được mô tả trong mục trước để xác định có một hình chữ nhật tâm tại (x, y).

Chúng ta hãy xem xét một điểm ảnh (x0, y0), và một khu vực lân cận trung tâm tại (x0, y0). Khu vực này phải đủ lớn để chứa tất cả các cạnh của bất kỳ hình chữ nhật có thể tập trung tại (x0, y0). Mặt khác, nó phải là càng nhỏ càng tốt, để tránh cạnh thuộc các cấu trúc khác (và / hoặc cạnh liên quan đến nhiễu).

Một khu vực tìm kiếm phù hợp là một vòng tròn có đường kính Dmin và đường kính ngoài Dmax. Lựa chọn các thông số này đƣợc thực hiện dựa trên các kích thước của hình chữ nhật được phát hiện: Dmin nên được xấp xỉ bằng nhỏ nhất kích thước của bất kỳ hình chữ nhật có thể, và Dmax gần bằng với đường chéo lớn nhất của bất kỳ mặt hình chữ nhật trong hình ảnh. Lựa chọn như các thông số đảm bảo rằng bất kỳ hình chữ nhật trong hình ảnh sẽ có tất cả các cạnh của nó trong khu vực tìm kiếm (khi trung tâm của khu vực tìm kiếm phù hợp các trung tâm của hình chữ nhật).

Chƣơng 3 GIỚI THIỆU CHUNG VỀ ROBOT 3.1 Giới thiệu về robot công nghiệp

3.1.1 Quá trình phát triển của robot công nghiệp

Thuật ngữ “Robor” lần đâu tiên xuất hiện vào năm 1922 trong tác phẩm “Rosum’s Universal Robot” của Karel Capek. Theo tiếng Czech thì Robot là người làm tạp dịch. Trong tác phẩm này nhân vật Romum và con trai ông đã tạo ra những chiếc máy gần giống con người để hầu hạ con người.

Hơn 20 năm sau ước mơ viễn tưởng của Karel Capek đã bắt đầu thực hiện. Ngay sau chiến tranh thế giới thứ 2, ở Mỹ đã xuất hiện những tay máy chép hình điều khiển từ xa, trong các thí nghiệm phóng xạ.

Năm 1959, Devol và Engelner đã chế tạo Robot công nghiệ đầu tiên tại công ty Unimation.

Tiếp theo Mỹ, các nước khác cũng bắt đầu sản xuất robot công nghiệp.Năm 1967 nhật bản mới nhập chiếc robot công nghiệp đầu tiên từ công ty AMF (American Machine and Foundry Company) của Mỹ.

Từ những năm 70, việc nghiên cứu nâng cao tính năng của robot đã chú ý nhiều đến sự lắp đặt thêm các cảm biến ngoại tín hiệu để nhận biết môi trường làm việc.

Năm 1967, tại trường đạ học tổng hợp…tanford, người đã tạo ra loại robot lắp ráp tự động điều khiển bằng vi tính trên cơ sở xử lý thông tin từ các cảm biến lực và thị giác.

Năm 1976, hang General Motor đã chế tạo thành công cánh tay robot được sử dụng trên tàu Viking của cơ quan hàng không vũ trụ NA…A nhằm lấy mẫu đất trên soa hỏa.

Ngày nay, chuyên ngành khoa học nghiên cứu về robot đã trở thành một lĩnh vực rộng trong khoa học, bao gồm các cấu trúc cơ cấu động học, động lực học, lập trình quỹ đạo, cảm biến tín hiệu, điều khiển chuyển đông,…

3.1.2. Ứng dụng của robot công nghiệp trong quá trình sản xuất

Robot công nghiệp được áp dụng nhiều trong lĩnh vực để thay thế con người, Nhờ vậy các dây chuyển sản xuất trong nhà máy,xí nghiệp được dây dựng lại và mang hiệu quả cao, tăng năng suất sản phẩm.

Mục tiêu ứng dụng robot công nghiệp nhằm góp phần nâng cao dây chuyền công nghệ, giảm giá thành, nâng cao chất lượng và khả năng cạch tranh của sản phẩm đồng thời cải thiện điều kiện lao động. Để đạt được mục tiêu đó là nhờ sự đóng góp to lớn của robot như: làm việc 24/24, dễ dàng chuyển nghề một cách thành thạo, chịu được phóng xạ và các môi trường làm việc độc hại, nhiệt độ cao khó chịu,… Robot sẽ thay thế con người trong các trường hợp bất lợi như trên hoặc thực hiện những công việc khó khăn, phức tạp như những công việc dễ làm mệt mỏi, nhầm lẫn.

Trong ngành cơ khí, robot được sử dụng nhiều trong hàn xì, cắt đột kim loại, lắp ráp vận chuyển phôi, sơn phun kim loại.

Hiện nay có rất nhiều dây chuyền sản xuât tự động mà chủ yếu là các máy CNC với robot công nghiệp, những dây chuyền này đạt mức độ tự động hóa cao, mức độ linh hoạt và chính xác cao… ở đây các máy và robot được điều khiển bằng cùng một hệ chương trình.

Như chúng ta đã thấy khả năng làm việc của robot trong một số điều kiện có khả năng làm việc tốt hơn và đạt hiệu quả hơn con người, do đó robot là phương tiện hữu hiệu để tự động hóa, nâng cao công suất lao động, giảm sức lao động cho con người và tránh được những công việc nặng nhọc và độc hại. Nhưng không phải cái gì robot cũng làm tốt, nó có nhực điểm là chưa linh hoạt trong dây chuyền tự động, nếu có một robot bị hỏng có thể làm ngừng hoạt động của dây chuyền, cho nên robot hoạt động vẫn dưới sự giám sát của con người.

3.1.3 Cấu trúc cơ bản của Robot công nghiệp 3.1.3.1 Kết cấu chung 3.1.3.1 Kết cấu chung

Hình 3.1 Các thành phần tạo nên robot công nghiệp

-Tay máy (Manipulator) là cơ cấu cơ khí gồm các khâu, khớp. Chúng hình thành cánh tay để tạo các chuyển động cơ bản, cổ tay tạo nên sự khéo léo, linh hoạt và bàn tay (End Effector) để trực tiếp hoàn thành các thao tác trên đối tượng.

-Cơ cấu chấp hành tạo chuyển động cho các khâu của tay máy. Nguồn động lực của các cơ cấu chấp hành là động cơ các loại: điện, thuỷ lực, khí nén hoặc kết hợp giữa chúng.

-Hệ thống cảm biến gồm các sensor và thiết bị chuyển đổi tín hiệu cần thiết khác. Các robot cần hệ thống sensor trong để nhận biết trạng thái của bản thân các cơ cấu của robot và các sensor ngoài để nhận biết trạng thái của môi trường.

-Hệ thống điều khiển (Controller) hiện nay thường là máy tính để giám sát và điều khiển hoạt động của robot.

Hình 3.2 Kết cấu chung của robot

3.1.3.2 Kết cấu của tay máy

Tay máy là phẩn cơ sở, quyết định khả năng làm việc của RBCN. Đó là thiết bị cơ khí đảm bảo cho robot khả năng chuyển động trong không gian và khả năng làm việc, như nâng hạ vật, lắp ráp,... Ý tưởng ban đầu của việc thiết kế và chế tạo tay máy là dựa trên sự cấu tạo và chức năng của tay người. Về sau, đây không còn là điều bắt buộc nữa. Tay máy hiện nay rất đa dạng và nhiều loại có dáng vẻ khác rất xa với tay người. Tuy nhiên, trong kỹ thuật robot người ta vẫn dùng các thuật ngữ quen thuộc, như vai (Shoulder), cánh tay (Arm), cổ tay (Wrist), bàn tay (Hund) và các khớp

(Articulations),... để chỉ tay máy và các bộ phận của nó.

Trong thiết kế và sử dụng tay máy, người ta quan tâm đến các thông số có ảnh hướng lớn đến khả năng làm việc của chúng, như:

-Sức nâng, độ cứng vững, lực kẹp của tay,...

-Tầm với hay vùng làm việc: kích thước và hình dáng vùng mà phần công tác có thể với tới;

- Sự khéo léo, nghĩa là khả năng định vị và định hướng phần công tác trong vùng làm việc. Thông số này liên quan đến số bậc tự do của phần công tác.

Để định vị và định hướng phần công tác một cách tuỳ ý trong không gian 3 chiều nó cần có 6 bậc tự do, trong đó 3 bậc tự do để định vị, 3 bậc tự do để định

hướng. Một số công việc như nâng hạ, xếp dỡ,... yêu cầu số bậc tự do ít hơn 6. Robot hàn, sơn thường có 6 bậc tự do. Trong một số trường hợp cần sự khéo léo, linh hoạt hoặc cần tối ưu hoá quỹ đạo,... người ta có thể dùng robot với số bậc tự do lớn hơn 6.

Các tay máy có đặc điểm chung về kết cấu là gồm có các khâu, được nối với nhau bằng các khớp để hình thành một chuỗi động học hở, tính từ thân đến phần công tác. Các khớp được dùng phổ biến là khớp trượt và khớp quay. Tuỳ theo số lượng và cách bố trí các khớp mà có thể tạo ra tay máy kiểu tọa độ đề các, tọa độ trụ, tọa độ cầu, SCARA và kiểu tay người (Anthropomorphic).

Tay máy kiểu tọa độ đề các (hình 3.3), còn gọi là kiểu chữ nhật, dùng 3 khớp

trượt, cho phép phần công tác thực hiện một cách độc lập các chuyển động thẳng, song song với 3 trục toạ độ. Vùng làm việc của tay máy có dạng hình hộp chữ nhật. Do sự đơn giản về kết cấu, tay máy kiểu này có độ cứng vững cao, độ chính xác được đảm bảo đồng đều trong toàn bộ vùng làm việc, nhưng ít khéo léo. Vì vậy, tay máy kiểu đề các được dùng để vận chuyển và lắp ráp.

Hình 3.3 Tay máy kiểu tọa độ đề các

Tay máy kiểu tọa độ trụ (hình 3.4) khác với tay máy kiểu đề các ở khớp đầu tiên: dùng khớp quay thay cho khớp trượt. Vùng làm việc của nó có dạng hình trụ rỗng Khớp trượt nằm ngang cho phép tay máy "thò" được vào khoang rỗng nằm ngang. Độ cứng vững cơ học của tay máy trụ tốt, thích hợp với tải nặng, nhưng độ chính xác định vị góc trong mặt phẳng nằm ngang giảm khi tầm với tăng.

Hinh 3.4 Tay máy kiểu tọa độ trụ

được thay bằng khớp quay. Nếu quỹ đạo chuyển động của phần công tác được mô tả

Một phần của tài liệu Điều khiển cánh tay robot phân loại sản phẩm theo màu sắc dùng xử lý ảnh (Trang 25)