Uploaded by Nguyễn Phúc Gia Nghi

Mini project Python for Linear Algebra final

advertisement
MINI PROJECT KẾT THÚC KHÓA HỌC
Mã đề: 1
Tên đề bài: Giữa những con sóng
Deadline: 23:59 11/05/2022
Lưu ý: Các dữ liệu và tình huống trong đề bài có thể sẽ không đúng hoặc không xảy ra
trong thực tế. Những vấn đề đã được làm đơn giản hóa để phù hợp với kiến thức đã học trong
khóa học.
Vấn đề:
Việt Nam ta hằng năm có khoảng 12 - 14 cơn bão xảy ra ở biển Đông thường diễn ra trong
khoảng tháng 6 đến tháng 11 hằng năm. Những cơn bão có thể gây ra nhiều ảnh hưởng đến
các hoạt động hàng hải, làm gián đoạn các hoạt động vận chuyển, đánh bắt hải sản.
Trong các cơn bão, sóng là một trong những yếu tố gây nên hiện tượng chòng chành, mất
kiểm soát cho tàu thuyền. Để có thể cập nhật tình hình sóng ở các con tàu và để có sự cảnh
báo sớm phù hợp, bộ hàng hải đã đưa ra một hệ thống mới nhằm đánh giá cũng như tạo bản
đồ sóng thời gian thực một cách trực quan nhất.
Ý tưởng của hệ thống đó như sau: mỗi con tàu sẽ được gắn 1 camera ở trên bong lái. Hình
ảnh từ camera sẽ được truyền đi 30s 1 lần thông qua mạng vệ tinh để đảm bảo tính ổn định
và đảm bảo không làm tiêu tốn nhiều năng lượng của tàu. Một hệ thống máy tỉnh đặt ở trụ sở
bộ sẽ lần lượt xử lý các bức ảnh được gửi về và đưa ra các thông số đồng thời quyết định có
cần thông báo nguy hiểm hay không.
Một con tàu khi bị sóng đánh vào mạn tàu sẽ làm tàu nghiêng sang trái nếu sóng đánh vào
mạn bên phải và ngược lại. Sóng càng lớn thì đồng nghĩa với góc nghiêng của tàu càng lớn.
Hãy xây dựng một hàm xử lý với đầu vào là bức ảnh được gửi về từ camera gắn trên bong lái
tàu và độ nghiêng tối đa mà tàu chịu được. Đầu ra của hàm bao gồm bức ảnh đã được xoay
thẳng theo đường chân trời, góc nghiêng của tàu (xét chiều dương là bên phải) và một giá trị
luận lý (true/false) cho thấy cần hay không cần thông báo nguy hiểm, trong đó một con tàu
được coi là trong tình trạng nguy hiểm nếu độ nghiêng của tàu vượt quá 90% độ nghiêng tối
đa tàu chịu được.
Với hệ thống mới này, bộ hàng hải hy vọng sẽ giúp giảm thiểu số vụ tai nạn đường thủy
do bão, đồng thời có được các thông số cần thiết để thiết lập những tuyến đường an toàn để
tránh tối đa các ảnh hưởng của bão lên vận tải đường biển.
TÀI LIỆU
2
Yêu cầu:
- Đầu vào bao gồm:
+ Ảnh định dạng RGB.
+ độ nghiêng tối đa.
- Đầu ra bao gồm:
+ Ảnh đã được xoay thẳng theo đường chân trời (gray hoặc RGB đêu được).
+ Góc nghiêng hiện tại của tàu.
+ Giá trị true/false cho thấy cần cảnh báo nguy hiểm hay không.
- Chỉ được sử dụng thư viện Numpy, ngoài ra được sử dụng thư viện PIL và matplotlib
cho việc đọc và xuất ảnh.
- Các hàm xoay ảnh, lật ảnh, di dời ảnh, edge detection, các hàm tự code bổ sung phải
được code đầy đủ, không được sử dụng hàm có sẵn.
Biểu điểm:
- Hàm chạy đúng yêu cầu (không yêu cầu cao, chỉ cần chạy đúng trong các trường hợp ảnh
dễ nhận thấy, rõ ràng): 70%.
- Code dễ đọc, dễ hiểu, khả tăng tái sử dụng cao (xét dưới góc nhìn một học viên khác):
20%.
- Có thêm các tính năng phụ trợ bổ sung: làm rõ ảnh trong trường hợp ảnh bị mờ, xóa rỗ
ảnh khi xoay, ...: 10%.
- Nếu dùng hàm có sẵn bạn sẽ có thể bị trừ 20% số điểm.
Gợi ý:
- Chuyển về ảnh gray để dễ xử lý.
- Edge detection để tìm ra đường chân trời.
- Dựa vào kết quả edge detection, tính được góc nghiêng của tàu.
- Xoay ảnh.
- Xử lý các thông số và trả về các kết quả theo yêu cầu.
Tài liệu
[1] https://www.youtube.com/watch?v=gaZhnNlutuQ.
[2] https://www.youtube.com/watch?v=FV_z4NCmeTk.
[3] https://www.youtube.com/watch?v=cat30PaExyo (tua đến 2:22:22).
2
Download