Các Câu Hỏi Thường Gặp#

Các khác biệt giữa CMUcam1 và CMUcam2 là gì?#

Giới Thiệu#

CMUcam2 bao gồm tất cả chức năng của CMUcam1 dưới một hình thức nâng cao và nhiều hơn nữa. Bên dưới chúng tôi mô tả ngắn gọn chức năng mới và các khác biệt. Bạn cũng có thể muốn xem câu trả lời cho câu hỏi về cách quyết định liệu nên mua một CMUcam1 hay CMUcam2.

Tổng Quan Phần Cứng#

Có hai khác biệt phần cứng chính quan trọng, CMUcam2 sử dụng một bộ xử lý khác với CMUcam1 và CMUcam2 tích hợp một chip bộ đệm khung hình trong khi CMUcam1 thì không.

CMUcam2 sử dụng bộ xử lý SX52 và CMUcam1 sử dụng bộ xử SX28, cả hai đều từ dòng bộ xử lý SX từ Ubicom. Trong cả hai trường hợp bộ xử lý chạy ở 75 MHz nên không có sự khác biệt về tốc độ bộ xử lý hoặc năng lực tính toán. Các ưu điểm của bộ xử lý SX52 là nó có nhiều RAM hơn (262 so với 136 byte), nhiều ROM hơn (4096 so với 2048 word), và nhiều chân I/O hơn. Nhiều RAM và ROM hơn có nghĩa là chúng tôi có thể viết mã phức tạp hơn cho phép chúng tôi tích hợp nhiều chức năng hơn trong CMUcam2. Số lượng chân I/O lớn hơn có nghĩa là chúng tôi có nhiều chân dư hơn cho các chức năng khác -- như nhiều servo hơn, nhiều jumper cấu hình hơn, v.v.

Sự khác biệt lớn giữa hai hệ thống là CMUcam2 bao gồm chip bộ đệm khung hình AL422B từ AverLogic trong khi CMUcam1 thì không. Điều này cho phép phần cứng CMUcam2 nhanh chóng chụp một khung hình hoàn chỉnh duy nhất và lưu nó vào bộ nhớ đệm khung hình. Điều này có một số ưu điểm:

  • Xử Lý Phức Tạp Hơn. Trong CMUcam1, bộ xử lý phải xử lý luồng dữ liệu pixel ngay lập tức khi nó được xuất ra bởi mô-đun camera. Thiết kế này giúp giảm độ phức tạp và chi phí của phần cứng hệ thống. Tuy nhiên, nó giới hạn độ phức tạp của việc xử lý vì nó phải được thực hiện trong thời gian thực giữa các pixel hoặc giữa các hàng ảnh. Vì bộ xử lý trên CMUcam2 truy cập dữ liệu pixel từ bộ đệm khung hình theo tốc độ riêng của nó, nó có thể thực hiện việc xử lý phức tạp hơn cho mỗi pixel.

  • Xử Lý Nhanh Hơn. Mặt khác của việc không phải duy trì đồng bộ với luồng pixel của mô-đun camera là bộ xử lý không phải chờ mô-đun camera khi nó cần dữ liệu pixel. Việc loại bỏ thời gian chờ này có nghĩa là bộ xử lý CMUcam2 thực sự có thể xử lý một khung hình nhanh hơn CMUcam1 mặc dù bộ xử lý không mạnh hơn chút nào.

  • Nhiều Thao Tác Trên Mỗi Khung Hình. Vì ảnh được lưu trong bộ đệm khung hình không thay đổi, CMUcam2 có thể thực hiện nhiều thao tác trên một khung hình đơn. Vì vậy chẳng hạn, có thể phát hiện chuyển động, tính toán thống kê vùng, và theo dõi nhiều màu tất cả trên một khung hình đơn.

  • Dump Khung Hình Tốt Hơn. Vì CMUcam1 phải đồng bộ dữ liệu dump khung hình được truyền với luồng dữ liệu mô-đun camera, nó chỉ có thể gửi một cột dữ liệu mỗi khung hình camera. Điều này có nghĩa là các phần khác nhau của ảnh được chụp tại các thời điểm khác nhau, nên các đối tượng di chuyển nhanh sẽ bị nhòe trên các bản dump khung hình của CMUcam1. Vì CMUcam2 truyền ảnh từ dữ liệu cố định trong bộ đệm khung hình nên đây không còn là vấn đề nữa.

  • Xử Lý Tốt Hơn Các Tốc Độ Baud Thấp Hơn. Việc có bộ đệm khung hình cũng có nghĩa là thời điểm của dữ liệu được CMUcam2 truyền có thể hoàn toàn tách rời khỏi thời điểm của dữ liệu được đọc từ mô-đun camera. Điều này có nghĩa là dữ liệu CMUcam2 từ các bản dump khung hình và các chế độ dòng bitmap không thay đổi khi tốc độ baud truyền thông thay đổi, CMUcam2 sẽ truyền cùng dữ liệu khung hình hoặc bitmap tới bộ xử lý chủ bất kể tốc độ baud. Tuy nhiên số lượng khung hình được xử lý mỗi giây vẫn có thể thay đổi với các tốc độ baud chậm hơn vì nó vẫn cần hoàn tất việc gửi tất cả dữ liệu từ một khung hình trước khi các khung hình tiếp theo có thể được xử lý.

  • Hoạt Động Mô-đun Camera Tốt Hơn. Để bộ xử lý trong CMUcam1 có thể duy trì đồng bộ với luồng dữ liệu từ mô-đun camera, tốc độ khung hình của mô-đun camera phải được giảm xuống 17 fps. Bộ đệm khung hình mà CMUcam2 sử dụng cho phép chúng ta vận hành mô-đun camera ở tốc độ khung hình đầy đủ. Một ưu điểm của điều này là việc điều chỉnh phơi sáng và cân bằng trắng tự động của camera có thể hoạt động nhanh hơn vì nó chỉ có thể thực hiện một điều chỉnh duy nhất mỗi khung hình và giờ đây có nhiều khung hình hơn mỗi giây. Ưu điểm thứ hai là đầu ra video analog đen trắng (chỉ hoạt động khi mô-đun đang vận hành ở tốc độ khung hình đầy đủ) có thể được sử dụng trong khi CMUcam2 đang xử lý dữ liệu ảnh, điều mà không thể thực hiện được với CMUcam1.

Tổng Quan Chức Năng#

CMUcam2 triển khai tất cả chức năng của CMUcam1 và cũng thêm rất nhiều chức năng mới. Sau đây là một bản tóm tắt.

  • Theo Dõi Màu. CMUcam2 triển khai việc theo dõi màu giống như CMUcam1 đã làm. Giống như trong CMUcam1, một chế độ dòng bitmap tùy chọn được triển khai để truyền một bitmap của các pixel được theo dõi. Cũng có một số cải tiến. Có một chế độ dòng tùy chọn mới cung cấp số liệu thống kê của các pixel được theo dõi cho mỗi hàng, bao gồm vị trí trung bình, nhỏ nhất và lớn nhất của các pixel được theo dõi. Điều này rất hữu ích cho việc dò theo đường. Cũng có một chế độ tùy chọn mới trong đó việc diễn giải các giới hạn theo dõi có thể được đảo ngược. Trong chế độ này các pixel nằm ngoài giới hạn theo dõi được coi là "tốt". Điều này hữu ích cho việc theo dõi một đối tượng trên nền đồng nhất -- hãy nghĩ đến hiệu ứng đặc biệt màn hình xanh. Nó cũng hữu ích để phát hiện các cạnh khi bật chức năng lấy hiệu pixel (được mô tả bên dưới). Tùy chọn lọc nhiễu cũng đã được cải tiến để cho phép điều chỉnh mức độ lọc cho các tình huống nhiễu.

  • Thống Kê Ảnh. CMUcam2 triển khai việc tính toán các thống kê trung bình và biến thiên của các vùng ảnh giống như CMUcam1 đã làm. Giống như trong CMUcam1, một chế độ dòng tùy chọn được triển khai để truyền giá trị trung bình của mỗi dòng của ảnh. Cũng có một chế độ dòng nâng cao mới tùy chọn bao gồm thông tin biến thiên trên cơ sở từng dòng.

  • Phát Hiện Chuyển Động. Hoàn toàn mới trong CMUcam2 là các lệnh phát hiện chuyển động (lấy hiệu khung hình). Các lệnh này có thể được sử dụng để yêu cầu CMUcam2 chụp một phiên bản độ phân giải thấp của ảnh hiện tại và liên tục so sánh nó với các ảnh mới đến. Các gói tin từ CMUcam2 báo cáo nếu bất kỳ phần nào của ảnh thay đổi nhiều hơn một lượng xác định, điều này có khả năng chỉ ra chuyển động. Các gói tin này có thể mô tả trọng tâm và phạm vi của các khối ảnh đã thay đổi hoặc cung cấp một bitmap cho biết khối ảnh nào đã thay đổi. Chế độ này cũng có thể được kết hợp với việc lấy hiệu pixel (được mô tả bên dưới) để làm cho việc phát hiện chuyển động mạnh mẽ hơn trước những thay đổi về độ chiếu sáng.

  • Lập Biểu Đồ Tần Suất (Histogram). Hoàn toàn mới trong CMUcam2 là các lệnh tính toán histogram. Các lệnh này có thể được sử dụng để chụp một histogram một chiều của một kênh màu đơn ở độ phân giải lên đến 28 khoảng (bin). Histogram cung cấp thông tin hữu ích tóm tắt diện mạo của một ảnh. Với việc lập trình bổ sung trên bộ xử lý chủ, thông tin này có thể được sử dụng để hỗ trợ phát hiện chướng ngại vật, các đối tượng cụ thể, hoặc vị trí.

  • Cửa Sổ Hóa Ảnh. CMUcam2 triển khai khả năng giới hạn việc xử lý vào một vùng nhỏ (cửa sổ con) của toàn bộ ảnh giống như CMUcam1 đã làm. Trong CMUcam2 chức năng này còn hữu ích hơn nữa vì nó có thể được sử dụng để kiểm tra kỹ các cửa sổ con của một ảnh đơn được lưu trong bộ đệm khung hình. Ngoài ra, việc giảm kích thước cửa sổ theo chiều dọc có thể được sử dụng để tăng đáng kể số khung hình được xử lý mỗi giây bằng cách giảm đáng kể số pixel cần được CMUcam2 xử lý.

  • Tùy Chỉnh Gói Đầu Ra. CMUcam2 triển khai việc tùy chỉnh gói tin linh hoạt hơn nhiều so với CMUcam1. Có các lệnh cho phép người dùng tùy chỉnh mỗi gói tin được tạo ra bởi mỗi lệnh để chỉ trả về các giá trị cần thiết cho một ứng dụng cụ thể. Điều này có thể giảm đáng kể lượng dữ liệu được truyền tới và được xử lý bởi bộ xử lý chủ trong nhiều tình huống.

  • Lấy Hiệu Pixel. Hoàn toàn mới trong CMUcam2 là một chế độ lấy hiệu pixel tùy chọn. Trong chế độ lấy hiệu pixel, các pixel được tiền xử lý trước khi chúng được chuyển tới phần còn lại của mã CMUcam2. Bước tiền xử lý này gửi các giá trị pixel mới tới phần còn lại của mã, các giá trị này là hiệu giữa giá trị pixel hiện tại và giá trị trước đó. Về cơ bản điều này lọc ra mọi thứ ngoại trừ các cạnh dọc trong ảnh. Đây là một thao tác rất mạnh mẽ và với việc lập trình bổ sung trên bộ xử lý chủ, có thể được sử dụng để hỗ trợ phát hiện chướng ngại vật và dò theo đường.

  • Giảm Mẫu. Hoàn toàn mới trong CMUcam2 là một chế độ giảm mẫu tùy chọn. Trong chế độ giảm mẫu, phần mềm CMUcam2 giảm độ phân giải của ảnh camera trước khi xử lý nó. Ưu điểm của điều này là có ít pixel hơn nhiều để xử lý và truyền đi. Vì nó được thực hiện bằng phần mềm, việc giảm mẫu chỉ dẫn đến một sự gia tăng rất nhỏ về tốc độ xử lý. Lợi ích lớn là ở việc giảm lượng dữ liệu được truyền. Trong trường hợp một khung hình ảnh được dump, việc giảm mẫu có thể dễ dàng giảm kích thước dữ liệu và do đó giảm thời gian truyền đi một hệ số 2 hoặc 4 hoặc hơn. Tương tự khi các chế độ dòng bitmap được sử dụng, kích thước của ảnh bitmap có thể được giảm đáng kể, làm giảm lượng dữ liệu mà bộ xử lý chủ phải nhận và xử lý.

  • Điều Khiển Servo. CMUcam1 ban đầu chỉ hỗ trợ một servo duy nhất và servo đó chỉ hoạt động đúng ở các tốc độ baud cụ thể và khi CMUcam1 ở chế độ streaming. CMUcam2 hỗ trợ tối đa năm servo. Mã bộ điều khiển servo trong CMUcam2 được triển khai như một tiến trình nền nên các đầu ra servo luôn duy trì ổn định và nó có thể được sử dụng như bất kỳ bộ điều khiển servo nào khác. Ngoài ra, CMUcam2 có thể được cấu hình để tự động điều khiển các servo pan và tilt. Trong chế độ này CMUcam2 sẽ cập nhật vị trí servo mỗi khi nó được ra lệnh tính toán dữ liệu theo dõi màu.

  • Tiết Kiệm Năng Lượng. Hoàn toàn mới trong CMUcam2 là các chế độ tiết kiệm năng lượng. Trong một số ứng dụng CMUcam2 không cần liên tục xử lý dữ liệu ảnh. Trong những trường hợp này CMUcam2 có thể được ra lệnh chuyển sang nhiều chế độ tắt nguồn (hoặc ngủ) khác nhau. Không có lệnh theo dõi hoặc điều khiển servo nào sẽ xảy ra khi CMUcam2 ở một trong những chế độ này. Việc gửi một lệnh serial đơn giản sẽ đánh thức camera trở lại trong vài mili giây.

Sự khác biệt giữa việc sử dụng mô-đun OV6620 và OV7620 với CMUcam2 là gì?#

Giới Thiệu#

Về khả năng, cảm biến OV7620 là một cảm biến độ phân giải cao hơn (664x492 vị trí cảm biến thô) so với cảm biến OV6620 (356x292 vị trí cảm biến thô). Nhưng sự thật này có rất ít liên quan đến các vấn đề nảy sinh khi xem xét cảm biến nào trong số này phù hợp nhất với ứng dụng CMUcam2 của bạn. Sau đây là danh sách các điều cần cân nhắc.

Độ Phân Giải#

Mặc dù đúng là cảm biến OV7620 là một cảm biến độ phân giải cao hơn OV6620, do kích thước bộ nhớ cố định của bộ đệm khung hình của CMUcam2, CMUcam2 chỉ hỗ trợ một độ phân giải duy nhất 160x239 cho cảm biến OV7620. CMUcam2 hỗ trợ một chế độ độ phân giải thấp 88x143 và một chế độ độ phân giải cao 176x255 cho cảm biến OV6620. Vì vậy sử dụng OV6620 ở chế độ độ phân giải cao, người ta thực sự có thể đạt được hoạt động độ phân giải cao hơn chế độ độ phân giải đơn có sẵn cho cảm biến OV7620.

Tốc Độ Khung Hình#

Một vấn đề khác liên quan đến độ phân giải là tốc độ khung hình tối đa khi xử lý liên tục một luồng ảnh. Độ phân giải càng thấp, số pixel cần xử lý càng ít và tốc độ khung hình đạt được càng cao. Mặc dù có thể tăng tốc độ khung hình bằng cách thay đổi tốc độ giảm mẫu và kích thước cửa sổ ảo, số lượng pixel thực tế được cảm biến xuất ra có ảnh hưởng lớn hơn nhiều. Vì điều này, CMUcam2 có thể đạt tốc độ khung hình cao hơn nhiều khi OV6620 được vận hành ở chế độ độ phân giải thấp so với chế độ độ phân giải đơn có sẵn cho OV7620.

Đầu Ra Video Analog#

Một khác biệt khác giữa hai cảm biến là định dạng đầu ra video analog của hai cảm biến. Cảm biến OV6620 xuất ra ở định dạng PAL analog và cảm biến OV7620 xuất ra ở định dạng NTSC analog. Trong cả hai trường hợp đầu ra đều là đen trắng.

Điều quan trọng cần lưu ý là trong hầu hết các cách sử dụng CMUcam2, đầu ra analog sẽ không được sử dụng. Trong một ứng dụng điển hình, kết quả xử lý ảnh hoặc các pixel thô được truyền dưới dạng số qua cổng serial tới máy tính chủ hoặc vi điều khiển nên đây không phải là vấn đề. Tuy nhiên, nếu video đen trắng trực tiếp là quan trọng, thì bạn có thể muốn tính đến định dạng của đầu ra video analog.

Tóm Tắt#

Khuyến nghị của chúng tôi là mô-đun OV6620 là lựa chọn tốt nhất cho gần như tất cả các ứng dụng, đặc biệt xét đến chi phí thấp hơn và thời gian xử lý nhanh hơn có thể đạt được với mô-đun này. Trong những ứng dụng hiếm hoi khi cần đầu ra video analog đơn sắc NTSC, bạn có thể muốn cân nhắc OV7620.

Có vấn đề nào đã biết với các bản phát hành firmware CMUcam2 hiện tại không?#

Có. Trong bản phát hành 1.00, lệnh "RM" (Raw Mode) không hoạt động chính xác. Bản phát hành 1.01 sửa vấn đề đó.

Firmware trong CMUcam2 có thể nâng cấp, nhưng cần một bộ lập trình SX-Key (hoặc tương thích) để làm điều đó. Các tập tin "hex" cho các ảnh ROM có sẵn trên trang Tải Xuống.