Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@asmorkalov
Copy link
Contributor

Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

  • I agree to contribute to the project under Apache 2 License.
  • To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
  • The PR is proposed to the proper branch
  • There is a reference to the original bug report and related work
  • There is accuracy test, performance test and test data in opencv_extra repository, if applicable
    Patch to opencv_extra has the same branch name.
  • The feature is well documented and sample code can be built with the project CMake

@asmorkalov asmorkalov changed the title WIP: Added HAL interface for Lukas-Kanade optical flow Added HAL interface for Lukas-Kanade optical flow Sep 12, 2024
@asmorkalov asmorkalov requested a review from vpisarev September 12, 2024 09:57
@asmorkalov
Copy link
Contributor Author

I made performance benchmark of the Carotene implementation. It passes tests. In terms of performance it's better for old AMRv7 processors only. Jetson-TK1 speedup:

OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 1, 1, (9, 9), 7)                      13.290   12.896     1.03   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 1, 1, (9, 9), 11)                     14.160   13.474     1.05   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 1, 1, (15, 15), 7)                    15.353   14.487     1.06   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 1, 1, (15, 15), 11)                   17.377   15.665     1.11   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 1, 3, (9, 9), 7)                      59.891   58.621     1.02   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 1, 3, (9, 9), 11)                     62.401   60.730     1.03   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 1, 3, (15, 15), 7)                    64.437   61.796     1.04   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 1, 3, (15, 15), 11)                   69.561   65.798     1.06   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 1, 4, (9, 9), 7)                      59.293   57.945     1.02   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 1, 4, (9, 9), 11)                     62.073   60.243     1.03   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 1, 4, (15, 15), 7)                    64.173   61.796     1.04   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 1, 4, (15, 15), 11)                   72.016   67.411     1.07   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 2, 1, (9, 9), 7)                      13.592   12.935     1.05   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 2, 1, (9, 9), 11)                     14.383   13.449     1.07   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 2, 1, (15, 15), 7)                    15.371   14.495     1.06   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 2, 1, (15, 15), 11)                   17.183   15.575     1.10   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 2, 3, (9, 9), 7)                      60.922   59.044     1.03   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 2, 3, (9, 9), 11)                     63.012   60.281     1.05   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 2, 3, (15, 15), 7)                    64.025   61.578     1.04   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 2, 3, (15, 15), 11)                   69.074   65.376     1.06   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 2, 4, (9, 9), 7)                      59.566   57.294     1.04   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 2, 4, (9, 9), 11)                     62.864   61.447     1.02   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 2, 4, (15, 15), 7)                    64.762   61.282     1.06   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/720p_%02d.png", 2, 4, (15, 15), 11)                   71.994   67.152     1.07   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 1, 1, (9, 9), 7)                       4.358    4.322      1.01   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 1, 1, (9, 9), 11)                      5.006    4.717      1.06   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 1, 1, (15, 15), 7)                     5.842    5.556      1.05   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 1, 1, (15, 15), 11)                    7.442    6.624      1.12   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 1, 3, (9, 9), 7)                       20.965   20.409     1.03   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 1, 3, (9, 9), 11)                      23.186   21.880     1.06   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 1, 3, (15, 15), 7)                     24.776   23.481     1.06   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 1, 3, (15, 15), 11)                    29.768   27.036     1.10   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 1, 4, (9, 9), 7)                       21.033   19.838     1.06   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 1, 4, (9, 9), 11)                      23.944   22.326     1.07   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 1, 4, (15, 15), 7)                     25.692   23.684     1.08   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 1, 4, (15, 15), 11)                    32.661   28.672     1.14   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 2, 1, (9, 9), 7)                       4.704    4.215      1.12   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 2, 1, (9, 9), 11)                      5.000    4.664      1.07   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 2, 1, (15, 15), 7)                     5.881    5.561      1.06   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 2, 1, (15, 15), 11)                    7.414    6.562      1.13   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 2, 3, (9, 9), 7)                       21.035   20.315     1.04   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 2, 3, (9, 9), 11)                      23.160   21.932     1.06   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 2, 3, (15, 15), 7)                     24.671   23.114     1.07   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 2, 3, (15, 15), 11)                    29.447   26.953     1.09   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 2, 4, (9, 9), 7)                       20.863   19.839     1.05   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 2, 4, (9, 9), 11)                      23.916   22.288     1.07   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 2, 4, (15, 15), 7)                     25.286   23.477     1.08   
OpticalFlowPyrLK_full::Path_Idx_Cn_NPoints_WSize::("cv/optflow/frames/VGA_%02d.png", 2, 4, (15, 15), 11)                    32.834   28.826     1.14   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 7, false, BORDER_DEFAULT, false)       17.900   17.992     0.99   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 7, false, BORDER_DEFAULT, true)        17.897   17.834     1.00   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 7, false, BORDER_TRANSPARENT, false)   17.793   17.670     1.01   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 7, false, BORDER_TRANSPARENT, true)    17.812   17.797     1.00   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 7, true, BORDER_DEFAULT, false)        24.866   24.480     1.02   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 7, true, BORDER_DEFAULT, true)         24.861   24.610     1.01   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 7, true, BORDER_TRANSPARENT, false)    24.195   24.213     1.00   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 7, true, BORDER_TRANSPARENT, true)     24.185   24.306     1.00   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 11, false, BORDER_DEFAULT, false)      18.176   18.138     1.00   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 11, false, BORDER_DEFAULT, true)       18.219   18.127     1.01   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 11, false, BORDER_TRANSPARENT, false)  17.987   17.931     1.00   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 11, false, BORDER_TRANSPARENT, true)   17.974   18.085     0.99   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 11, true, BORDER_DEFAULT, false)       24.861   24.846     1.00   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 11, true, BORDER_DEFAULT, true)        24.696   24.837     0.99   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 11, true, BORDER_TRANSPARENT, false)   24.151   24.549     0.98   
OpticalFlowPyrLK_pyr::Path_Win_Deriv_Border_Reuse::("cv/optflow/frames/720p_01.png", 11, true, BORDER_TRANSPARENT, true)    24.364   24.289     1.00   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 1, (9, 9), 7, false)         6.680    6.395      1.04   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 1, (9, 9), 7, true)          0.905    0.805      1.13   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 1, (9, 9), 11, false)        7.429    6.844      1.09   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 1, (9, 9), 11, true)         1.370    1.081      1.27   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 1, (15, 15), 7, false)       8.676    8.006      1.08   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 1, (15, 15), 7, true)        2.508    2.229      1.13   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 1, (15, 15), 11, false)      10.639   9.165      1.16   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 1, (15, 15), 11, true)       4.031    3.085      1.31   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 3, (9, 9), 7, false)         19.423   18.333     1.06   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 3, (9, 9), 7, true)          1.545    1.258      1.23   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 3, (9, 9), 11, false)        21.334   19.628     1.09   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 3, (9, 9), 11, true)         2.857    2.179      1.31   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 3, (15, 15), 7, false)       23.379   21.172     1.10   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 3, (15, 15), 7, true)        4.649    3.737      1.24   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 3, (15, 15), 11, false)      28.056   24.564     1.14   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 3, (15, 15), 11, true)       10.552   7.648      1.38   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 4, (9, 9), 7, false)         25.591   24.318     1.05   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 4, (9, 9), 7, true)          1.778    1.425      1.25   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 4, (9, 9), 11, false)        28.774   26.829     1.07   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 4, (9, 9), 11, true)         3.756    3.186      1.18   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 4, (15, 15), 7, false)       29.838   27.610     1.08   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 4, (15, 15), 7, true)        5.732    4.401      1.30   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 4, (15, 15), 11, false)      37.631   33.103     1.14   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 1, 4, (15, 15), 11, true)       14.064   10.350     1.36   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 1, (9, 9), 7, false)         6.687    6.357      1.05   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 1, (9, 9), 7, true)          0.904    0.803      1.13   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 1, (9, 9), 11, false)        7.367    6.823      1.08   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 1, (9, 9), 11, true)         1.328    1.061      1.25   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 1, (15, 15), 7, false)       8.733    7.985      1.09   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 1, (15, 15), 7, true)        2.485    2.241      1.11   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 1, (15, 15), 11, false)      10.478   9.076      1.15   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 1, (15, 15), 11, true)       3.876    2.994      1.29   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 3, (9, 9), 7, false)         19.365   18.398     1.05   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 3, (9, 9), 7, true)          1.526    1.253      1.22   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 3, (9, 9), 11, false)        20.923   19.605     1.07   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 3, (9, 9), 11, true)         2.742    2.159      1.27   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 3, (15, 15), 7, false)       22.917   21.246     1.08   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 3, (15, 15), 7, true)        4.646    3.759      1.24   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 3, (15, 15), 11, false)      28.086   24.744     1.14   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 3, (15, 15), 11, true)       10.653   7.728      1.38   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 4, (9, 9), 7, false)         25.057   24.407     1.03   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 4, (9, 9), 7, true)          1.756    1.412      1.24   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 4, (9, 9), 11, false)        28.064   26.731     1.05   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 4, (9, 9), 11, true)         3.643    3.104      1.17   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 4, (15, 15), 7, false)       29.699   27.698     1.07   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 4, (15, 15), 7, true)        5.734    4.491      1.28   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 4, (15, 15), 11, false)      37.233   33.088     1.13   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/720p_%02d.png", 2, 4, (15, 15), 11, true)       14.165   10.358     1.37   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 1, (9, 9), 7, false)          2.586    2.538      1.02   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 1, (9, 9), 7, true)           0.789    0.709      1.11   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 1, (9, 9), 11, false)         3.158    2.931      1.08   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 1, (9, 9), 11, true)          1.279    1.019      1.26   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 1, (15, 15), 7, false)        4.028    3.829      1.05   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 1, (15, 15), 7, true)         2.150    1.932      1.11   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 1, (15, 15), 11, false)       5.577    4.852      1.15   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 1, (15, 15), 11, true)        3.540    2.834      1.25   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 3, (9, 9), 7, false)          7.803    7.144      1.09   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 3, (9, 9), 7, true)           1.646    1.346      1.22   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 3, (9, 9), 11, false)         9.824    8.622      1.14   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 3, (9, 9), 11, true)          3.107    2.420      1.28   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 3, (15, 15), 7, false)        11.637   10.183     1.14   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 3, (15, 15), 7, true)         4.854    3.981      1.22   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 3, (15, 15), 11, false)       16.239   13.861     1.17   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 3, (15, 15), 11, true)        10.211   7.806      1.31   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 4, (9, 9), 7, false)          10.106   9.366      1.08   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 4, (9, 9), 7, true)           1.884    1.521      1.24   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 4, (9, 9), 11, false)         13.038   11.570     1.13   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 4, (9, 9), 11, true)          4.079    3.311      1.23   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 4, (15, 15), 7, false)        14.732   12.861     1.15   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 4, (15, 15), 7, true)         5.918    4.639      1.28   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 4, (15, 15), 11, false)       22.224   18.071     1.23   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 1, 4, (15, 15), 11, true)        13.851   10.507     1.32   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 1, (9, 9), 7, false)          2.505    2.480      1.01   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 1, (9, 9), 7, true)           0.734    0.655      1.12   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 1, (9, 9), 11, false)         3.179    2.913      1.09   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 1, (9, 9), 11, true)          1.275    1.010      1.26   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 1, (15, 15), 7, false)        3.993    3.804      1.05   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 1, (15, 15), 7, true)         2.118    1.898      1.12   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 1, (15, 15), 11, false)       5.501    4.773      1.15   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 1, (15, 15), 11, true)        3.465    2.766      1.25   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 3, (9, 9), 7, false)          7.833    7.194      1.09   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 3, (9, 9), 7, true)           1.640    1.348      1.22   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 3, (9, 9), 11, false)         9.782    8.604      1.14   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 3, (9, 9), 11, true)          3.068    2.374      1.29   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 3, (15, 15), 7, false)        11.557   10.127     1.14   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 3, (15, 15), 7, true)         4.794    3.846      1.25   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 3, (15, 15), 11, false)       16.317   13.772     1.18   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 3, (15, 15), 11, true)        10.139   7.748      1.31   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 4, (9, 9), 7, false)          10.085   9.326      1.08   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 4, (9, 9), 7, true)           1.884    1.526      1.24   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 4, (9, 9), 11, false)         13.061   11.515     1.13   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 4, (9, 9), 11, true)          4.029    3.312      1.22   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 4, (15, 15), 7, false)        14.561   12.706     1.15   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 4, (15, 15), 7, true)         5.723    4.487      1.28   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 4, (15, 15), 11, false)       22.049   18.008     1.22   
OpticalFlowPyrLK_self::Path_Idx_Cn_NPoints_WSize_Deriv::("cv/optflow/frames/VGA_%02d.png", 2, 4, (15, 15), 11, true)        13.923   10.415     1.34

perf-pyrlk.zip

@asmorkalov asmorkalov merged commit 881440c into opencv:4.x Sep 16, 2024
@asmorkalov asmorkalov mentioned this pull request Sep 20, 2024
savuor pushed a commit to savuor/opencv that referenced this pull request Nov 1, 2024
Added HAL interface for Lukas-Kanade optical flow opencv#26143

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [ ] The PR is proposed to the proper branch
- [ ] There is a reference to the original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [ ] The feature is well documented and sample code can be built with the project CMake
@savuor savuor mentioned this pull request Nov 1, 2024
6 tasks
savuor pushed a commit to savuor/opencv that referenced this pull request Nov 5, 2024
Added HAL interface for Lukas-Kanade optical flow opencv#26143

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [ ] The PR is proposed to the proper branch
- [ ] There is a reference to the original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [ ] The feature is well documented and sample code can be built with the project CMake
savuor pushed a commit to savuor/opencv that referenced this pull request Nov 8, 2024
Added HAL interface for Lukas-Kanade optical flow opencv#26143

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [ ] The PR is proposed to the proper branch
- [ ] There is a reference to the original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [ ] The feature is well documented and sample code can be built with the project CMake
savuor pushed a commit to savuor/opencv that referenced this pull request Nov 21, 2024
Added HAL interface for Lukas-Kanade optical flow opencv#26143

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [ ] The PR is proposed to the proper branch
- [ ] There is a reference to the original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [ ] The feature is well documented and sample code can be built with the project CMake
thewoz pushed a commit to CobbsLab/OPENCV that referenced this pull request Feb 13, 2025
Added HAL interface for Lukas-Kanade optical flow opencv#26143

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [ ] The PR is proposed to the proper branch
- [ ] There is a reference to the original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [ ] The feature is well documented and sample code can be built with the project CMake
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants