14
RASPBERRY PI WITH CAMERA TUTORIAL Sinh viên tìm hiu: 1/ Nguyễn Đức Trung - 10520353 2/ Trn Thanh Liêm - 10520364 Mc lc: I. Giới thiệu tổng quan. ............................................................................................................................ 2 II. Đặc điểm và tính chất. .......................................................................................................................... 4 III. Lắp đặt. ............................................................................................................................................. 6 IV. Làm việc với camera........................................................................................................................ 10 1) Các lệnh thông số hình ảnh: ............................................................................................................ 10 2) Các lệnh thông số xem trước: ......................................................................................................... 11 V. Quay video và chụp ảnh. ..................................................................................................................... 11 1) Quay phim: ...................................................................................................................................... 11 2) Chụp ảnh: ........................................................................................................................................ 12 VI. Xử lý ảnh cơ bản. ............................................................................................................................ 12 VII. Tài liệu tham khảo:.......................................................................................................................... 14

Report - Raspberry Pi Camera Module - Week 3

Embed Size (px)

Citation preview

Page 1: Report - Raspberry Pi Camera Module - Week 3

RASPBERRY PI WITH CAMERA TUTORIAL

Sinh viên tìm hiểu:

1/ Nguyễn Đức Trung - 10520353

2/ Trần Thanh Liêm - 10520364

Mục lục:

I. Giới thiệu tổng quan. ............................................................................................................................ 2

II. Đặc điểm và tính chất. .......................................................................................................................... 4

III. Lắp đặt. ............................................................................................................................................. 6

IV. Làm việc với camera........................................................................................................................ 10

1) Các lệnh thông số hình ảnh: ............................................................................................................ 10

2) Các lệnh thông số xem trước: ......................................................................................................... 11

V. Quay video và chụp ảnh. ..................................................................................................................... 11

1) Quay phim: ...................................................................................................................................... 11

2) Chụp ảnh: ........................................................................................................................................ 12

VI. Xử lý ảnh cơ bản. ............................................................................................................................ 12

VII. Tài liệu tham khảo: .......................................................................................................................... 14

Page 2: Report - Raspberry Pi Camera Module - Week 3

Raspberry Pi with Camera Tutorial

2

I. Giới thiệu tổng quan.

Trước khi xuất hiện camera, điều duy nhất bạn có thể làm để thêm khả năng

nhận biết hình ảnh, quay phim, chụp hình cho RPi là sử dụng 1 webcam cắm

vào cổng USB. Với các webcam Logotech tích hợp sẵn định dạng xuất

mjpeg sẽ giúp Raspberry xử lý nhanh hơn. Nhưng các webcam Logitech lại

có giá thành khá cao, nhất là các webcam có độ phân giải lớn.

Raspberry Pi camera được tích hợp camera 5 Megapixel có độ nhạy sáng

cao, có thể chụp tốt ở nhiều điều kiện ánh sáng khác nhau, cả trong nhà và

ngoài trời. Điểm đặc biệt mà camera mang lại đó là chụp hình độ nét cao

trong lúc quay phim.

Bạn không tốn thêm cổng USB nào cho camera vì camera được gắn chắc

chắn vào socket CSI (gần cổng LAN vớiRaspberry Pi model B). Điều này

giúp hạn chế tình trạng nghẽn băng thông cho chip xử lý USB trên mạch

Page 3: Report - Raspberry Pi Camera Module - Week 3

Raspberry Pi with Camera Tutorial

3

Raspberry. Chiều dài cáp nối camera đã được tính toán cẩn thận khi vừa đạt

được độ dài cần thiết trong khi vẫn đảm bảo tốc độ truyền hình ảnh từ

module về RPi.

Raspberry Pi camera module đã gắn vào

Với Raspberry pi camera board bạn sẽ làm được gì?

Bạn có thể dùng camera và RPi để thiết lập hệ thống phát hiện chuyển động.

Hệ thống này hoạt động bằng cách sử dụng hình ảnh từ camera kết hợp với

chương trình motion xử lý hình ảnh và đưa ra lệnh điều khiển nếu phát hiện

thấy có chuyển động.

Camera cũng đặc biệt hữu ích với các bạn yêu thích làm phim, bạn có thể sử

dụng để quay những góc quay khó hoặc những cảnh quay độc mà chỉ với

máy quay gọn nhẹ nhất mới làm được. Ngoài ra, bạn có thể sử dụng camera

để quay các đoạn phim time-lapse (ghép nhiều hình lại với nhau) đang được

rất nhiều người dùng trên thế giới thực hiện.

Page 4: Report - Raspberry Pi Camera Module - Week 3

Raspberry Pi with Camera Tutorial

4

Camera module được gắn hoàn chỉnh với RPi

Trước khi có thể sử dụng được raspberry pi camera board, bạn cần phải thiết

lập cấu hình hệ thống và kích hoạt chức năng camera trên RPi. II. Đặc điểm và tính chất.

Đây là một module camera CMOS 5MP với ống kính có khả năng chụp ảnh

cũng nhưng quay video với độ nét cao. Nó có thể chụp ảnh với độ phân giải

2592x1944, trong khi video được hổ trợ có thể xem được 1080p với 30FPS,

720P với 60 FPS, và 640x480 với 60FPS hoặc 90 FPS.

Page 5: Report - Raspberry Pi Camera Module - Week 3

Raspberry Pi with Camera Tutorial

5

Kích thước của module camera chỉ có 25mm x 20mm x 9mm và chỉ nặng có

3grams. Điều này giúp nó trở thành thiết bị lý tưởng cho các projec như

camera an ninh bí mật, và thậm chí nó còn là camera trên board cho các xe

thám hiểm RC. Module này được hỗ trợ ở phiên bản mới nhất của Raspbian,

hệ điều hành chính của Raspberry Pi.

1.4 µm X 1.4 µm pixel with OmniBSI technology for high performance

(high sensitivity, low crosstalk, low noise)

Optical size of 1/4"

Automatic image control functions:

Automatic exposure control (AEC)

Automatic white balance (AWB)

Automatic band filter (ABF)

Automatic 50/60 Hz luminace detection

Automatic black level calibration (ABLC)

Page 6: Report - Raspberry Pi Camera Module - Week 3

Raspberry Pi with Camera Tutorial

6

Programmable controls for frame rate , AEC/AGC 16-zone

size/position/weight control, mirror and flip, cropping, windowing, and

panning

Digital video port (DVP) parallel output interface

32 bytes of embedded one-time programmable (OTP) memory III. Lắp đặt.

Trước khi lắp đặt module camera, bản phải cần làm trước vài thứ với Pi, bắt

đầu với việc phải đảm bảo rằng hệ điều hành trên Pi của bạn đã được cập

nhật phiên bản mới nhất, việc này khá đơn giản, bạn chỉ cần đảm bảo Pi của

mình đang kết nối với internet, sau đó vào console và chạy các lệnh sau đây:

sudo apt-get update

việc này sẽ mất vài phút để hoàn thành. Khi đã hoàn thành chúng ta cần phải

chạy update bằng cách dùng lệnh sau:

sudo apt-get upgrade –y

Page 7: Report - Raspberry Pi Camera Module - Week 3

Raspberry Pi with Camera Tutorial

7

ở bước này bạn cần phải điền password của người dùng root và việc cập nhật

sẽ mất một khoản thời gian để hoàn thành. Một khi nó đã hoàn tất chúng ta

chuyển sang việc chuẩn bị chạy module camera đã lắp đặt vào Pi.

Lệnh đầu tiên chúng ta cần chạy sẽ cài đặt gói git-core.

sudo apt-get install git-core -y

Page 8: Report - Raspberry Pi Camera Module - Week 3

Raspberry Pi with Camera Tutorial

8

Sau đó chúng ta cần download bản “rpi-update”, việc này sẽ được

thực thi bằng lệnh sau:

sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-

update -O /usr/bin/rpi-update

Page 9: Report - Raspberry Pi Camera Module - Week 3

Raspberry Pi with Camera Tutorial

9

Khi việc này hoàn tất chúng ta phải thay đổi các quyền trong bản “rpi-

update”, để thực hiện đều này chúng ta chỉ cần chạy một lệnh đơn giản như

sau:

sudo chmod +x /usr/bin/rpi-update

Mọi việc đã gần như hoàn tất. Giờ ta cần phải update cấu hình file

boot bằng các thêm các dòng sau ở phía dưới của file bằng lệnh:

sudo nano /boot/config.txt

thêm vào các dòng sau:

start_file=start_x.elf

fixup_file=fixup_x.dat Bạn cũng sẽ phải chắc rằng bộ nhớ GPU được cấp phát 128MP bằng dòng

lệnh: gpu_mem=128

Lưu lại và vẫn giữ nguyên tên file như ban đầu.

Page 10: Report - Raspberry Pi Camera Module - Week 3

Raspberry Pi with Camera Tutorial

10

Sau đó dùng lệnh bên dưới và chọn lựa chọn thứ 5 để kích hoạt camera

module.

sudo raspi-config. IV. Làm việc với camera.

Sau đây là các lệnh điều khiển các chức năng cơ bản của module camera.

Usage: raspivid [options] 1) Các lệnh thông số hình ảnh:

-?, --help : This help information

-w, --width : Set image width . Default 1920

-h, --height : Set image height . Default 1080

-b, --bitrate : Set bitrate. Use bits per second (e.g. 10MBits/s would be

-b 10000000)

-o, --output : Output filename (to write to stdout, use '-o -')

-v, --verbose : Output verbose information during run

-t, --timeout : Time (in ms) to capture for. If not specified, set to 5s.

Zero to disable

-d, --demo : Run a demo mode (cycle through range of camera

options, no capture)

Page 11: Report - Raspberry Pi Camera Module - Week 3

Raspberry Pi with Camera Tutorial

11

-fps, --framerate : Specify the frames per second to record

-e, --penc : Display preview image *after* encoding (shows

compression artifacts)

-g, --intra : Specify the intra refresh period (key frame rate/GoP size)

-sh, --sharpness : Set image sharpness (-100 to 100)

-co, --contrast : Set image contrast (-100 to 100)

-br, --brightness : Set image brightness (0 to 100)

-sa, --saturation : Set image saturation (-100 to 100)

-ISO, --ISO : Set capture ISO

-vs, --vstab : Turn on video stablisation

-ev, --ev : Set EV compensation

-ex, --exposure : Set exposure mode (see Notes)

-awb, --awb : Set AWB mode (see Notes)

-ifx, --imxfx : Set image effect (see Notes)

-cfx, --colfx : Set colour effect (U:V)

-mm, --metering : Set metering mode (see Notes)

-rot, --rotation : Set image rotation (0-359)

-hf, --hflip : Set horizontal flip

-vf, --vflip : Set vertical flip

2) Các lệnh thông số xem trước:

-p, --preview : Preview window settings

-f, --fullscreen : Fullscreen preview mode

-op, --opacity : Preview window opacity (0-255)

-n, --nopreview : Do not display a preview window

V. Quay video và chụp ảnh.

1) Quay phim:

Để quay phim và chụp ảnh bình thường với module camera, chúng ta phải

dùng terminal.

Trước tiên chúng ta phải đảm bảo rằng mọi thứ đang hoạt động, với module

camera đã được kết nối, ta sử dụng lệnh:

raspivid –d

lệnh này sẽ load một bản demo mà bạn có thể thấy trong cửa sổ terminal.

Nếu không có gì xảy ra và bạn bị báo lỗi hãy dùng lệnh raspi-config như

Page 12: Report - Raspberry Pi Camera Module - Week 3

Raspberry Pi with Camera Tutorial

12

theo hướng dẫn ở các phần trước và phải chắc chắn rằng camera đã được

bật.

raspivid -w 1920 -h 1080 -fps 30 -t 30000 -o video.h264

raspivid – khở tạo camera và thiết lập chế độ video.

-w 1920 - h 1080 – độ phân giải của video.

-fps 30 – khung hình trên giây là 30.

-t 30000 – thiết lập thời gian tối đa cho video.

-o video.h264 – tên file xuất ra.

2) Chụp ảnh:

raspistill -o picture,jpg

raspistill – khởi tạo camera và thiết lập chế độ chụp ảnh.

-o picture.jpg – file xuất ra.

raspicam -tl 1000 -o file%d.jpg

cứ một giây sẽ chụp 1 ảnh, chỉ dừng lại khi ta nhấn “Ctrl-C”.

raspicam -ifx negative -o negative_image.jpg

lệnh này sẽ chụp hình ở chế độ ”negative”.

Raspicam

có đây đủ các hiệu ứng hình ảnh khi chụp ảnh.

Raspivid

Có đầy đủ các hiệu ứng hình ảnh khi quay video.

VI. Xử lý ảnh cơ bản.

Ở đây chúng ta sử dụng ngôn ngữ python.

Trước tiên ta phải thêm vào thư viện xử lý ảnh: from imgproc import *

Module imgproc cung cấp cho chúng ta một số chức năng cơ bản để sử dụng

webcam, truy cập dữ liệu là hình ảnh, và hiển thị hình ảnh lên màng hình.

Tiếp theo chúng ta sẽ bắt đầu bằng việc mở camera . Thêm vào ngay dưới

lệnh import: my_camera = Camera(320, 240)

Lệnh trên sẽ mở camera và thiết lập kích thước của ảnh là 320 x 240. my_image = my_camera.grabImage() Lấy một ảnh từ camera và lưu trữ nó.

# open a view setting the view to the size of the captured

image

my_view = Viewer(my_image.width, my_image.height, "Basic image

processing")

Page 13: Report - Raspberry Pi Camera Module - Week 3

Raspberry Pi with Camera Tutorial

13

# display the image on the screen

my_view.displayImage(my_image)

# wait for 5 seconds, so we can see the changes

waitTime(5000) Hiển thị hình ảnh lên màng hình.

Code hoàn chỉnh sẽ là: from imgproc import *

# open the webcam

my_camera = Camera(320, 240)

# grab an image from the camera

my_image = my_camera.grabImage()

# open a view, setting the view to the size of the captured

image

my_view = Viewer(my_image.width, my_image.height, "Basic image

processing")

# display the image on the screen

my_view.displayImage(my_image)

# wait for 5 seconds, so we can see the image

waitTime(5000) Lưu lại thành một file có tên Basic.py.

Sau đó chạy các lệnh trên bằng lệnh sau trên terminal: python basic.py

Dữ liệu hình ảnh là một mảng hai chiều các điểm ảnh, một điểm ảnh là

tuple của 3 giá trị: liên quan đến 3 mày cơ bản là đỏ, xanh lá và xanh dương.

Bạn có thể truy cập vào các điểm ảnh bằng cách xử lý hình ảnh như một mảng, # get the value of the pixel at x position 120 and y position

64 in the image

pixel = my_image[120, 64]

# pixel is now a tuple of the red, green and blue of the

requested pixel

# An alternative method

red, green, blue = my_image[120, 64]

# red, green and blue now contain the intensity of the red,

green and blue

# channels respectively

Để thiết lập một điểm ảnh, bạn phải chỉ định vị trí của một bộ 3 tuple, hay

cẩn thận vì bạn chỉ có thể thiết lập giá từ 0 đến 255. # Set the value of pixel at x position 120 and y position 64

# to an orange colour

my_image[120, 64] = 255, 128, 0

Giờ chúng ta sẽ lấy màu đỏ là màu chủ đạo trong ảnh và chuyển nó sang

màu xanh: # iterate over ever pixel in the image by iterating over each

row and each column

Page 14: Report - Raspberry Pi Camera Module - Week 3

Raspberry Pi with Camera Tutorial

14

for x in range(0, my_image.width):

for y in range(0, my_image.height):

# get the value of the current pixel

red, green, blue = my_image[x, y]

# check if the red intensity is greater than the green

if red > green:

# check if red is also more intense than blue

if red > blue:

# this pixel is predominantly red

# let's set it to blue

my_image[x, y] = 0, 0, 255

Lưu các đoạn code này vào file bên trên và chạy chúng cùng lúc.

VII. Tài liệu tham khảo:

http://www.tweaktown.com/guides/5617/raspberry-pi-camera-

module-review-and-tutorial-guide/index5.html

https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/robot/image_p

rocessing/