Vấn đề khi perform ứng dụng realtime sử dụng thư viện Opencv trên Android NDK
Xin chào
Mình đang viết 1 ứng dụng nền tảng android ndk có sử dụng thư viên Opencv.
Vấn đề là khì mình dùng hàm resize của opencv thì fps giảm xuống rất thấp. Không biết tại sao. Hàm resize của opencv có 4 kiểu
INTER_NEAREST - a nearest-neighbor interpolation
INTER_LINEAR - a bilinear interpolation (used by default)
INTER_AREA - resampling using pixel area relation. It may be a preferred method for image decimation, as it gives moire’-free results. But when the image is zoomed, it is similar to the INTER_NEAREST method.
INTER_CUBIC - a bicubic interpolation over 4x4 pixel neighborhood
INTER_LANCZOS4 - a Lanczos interpolation over 8x8 pixel neighborhood
Tuy nhiên kiểu nào cũng làm giảm fps. Có bạn nào từng làm opencv trên android ndk gặp vấn đề này chưa?
Xin cảm ơn
Hi HelloWorld.
Bạn log thử xem nó chạy hết bao lâu. Hoặc chậm ở đâu chứ ?
P/S Resize là phải duyệt qua hết mảng rồi.
Mình đo fps khi chưa dùng và khi dùng resize nó tụt mạnh thấy liền, bình thường 20 - 25 ~
Để mình do time thực hiện xem sao
Mình tự code 1 vài hàm, vẫn thực hiện duyệt hết mạng mà vẫn nhanh mà
Sau khi đo đi đo lại các kiểu. Mình mới phát hiện ra chỗ load file tham số PCA cũng bị chậm.
Thời gian thực hiện: 0.06 ms
FPS dao động: 10-15.
Khi chưa đọc file này lên thì tầm 20fps. File này mình lưu trong internal storage
Mình đọc file tham số như sau:
Hoặc
Bạn có từng mắc vấn đề này chưa/
Hi HelloWorld.
Về mặt tổng quát khi bạn cần giao tiếp với các hệ thống có tốc độ đọc ghi khác nhau VD ổ cứng và ram, hay ram và cpu người ta thường dùng các bộ đêm (cá chê). Trước khi chạy bạn đọc hết file hoặc một phần file vào một buffer và tạo một đối tượng để giao tiếp với nó. Khi cần đọc ghi thì đọc ghi qua đối tượng này trên ram đảm bảo tốc độ. Khi bộ đệm đầy thì nó chạy một luồng riêng và đẩy cả khối dữ liệu xuông một thể.
P/S http://genk.vn/giai-ngo-ve-bo-nho-dem-memory-cache-20160410140135327.chn
nhờ gợi ý của bạn mình nghĩ được cách giải quyết rồi, k biết được k, tks bạn
Mình đã sửa lại chỗ đọc file. Mỗi phiên sử dụng chỉ đọc file 1 lần, mà vẫn bị chậm