使用网球场尺寸进行摄像机校准

2024-06-02 15:41:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个tennis project,目前正在努力寻找球场上球碰到球场的地方
目前我有:

  • ^从这些video开始的球的{}坐标(P.S.x,y坐标在下面的format
points = [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [985, 325], [978, 345], None, None, None, None, None, [904, 613], [895, 644], [886, 649], [877, 654], [870, 658], [870, 658], [861, 664], [853, 672], [846, 679], [837, 688], [827, 695], [827, 695], [821, 707], [812, 716], [803, 729], [1051, 313], [786, 755], [786, 755], [782, 769], [782, 746], [786, 730], [793, 700], [800, 677], [800, 677], [803, 656], [807, 640], [814, 620], [819, 593], [819, 579], [819, 579], [825, 562], [831, 546], [834, 532], None, [833, 805], [833, 805], None, None, None, None, None, None, [865, 427], [867, 418], [871, 409], [872, 400], [877, 392], [877, 392], [877, 385], [883, 377], [883, 369], [887, 366], [890, 358], [890, 357], [892, 352], [894, 346], [897, 340], [898, 336], [900, 332], [900, 332], [902, 329], [905, 325], [905, 322], [908, 320], [910, 316], [910, 316], [912, 315], [914, 314], [916, 310], [919, 308], [919, 306], [919, 306], [920, 305], [924, 306], [922, 306], [926, 305], [928, 305], [926, 307], [930, 306], [930, 305], [932, 305], [933, 307], [935, 310], [935, 308], [936, 310], [937, 313], [938, 314], [940, 316], [942, 319], [942, 319], [942, 322], [943, 323], [945, 324], [946, 316], [945, 306], [945, 306], [945, 298], [946, 291], [947, 284], [947, 278], [950, 272], [949, 273], [950, 266], [951, 261], [950, 255], [950, 251], [951, 245], [951, 245], [953, 241], [952, 237], [950, 236], [945, 237], [939, 240], [938, 239], [934, 242], [928, 244], [922, 250], [917, 252], [911, 256], [911, 256], [905, 263], [899, 267], [896, 274], [890, 278], [883, 286], [883, 286], [878, 293], [873, 300], [869, 309], [863, 318], [858, 329], [858, 329], [851, 338], [846, 349], [840, 359], [835, 371], [830, 384], [830, 384], [825, 397], [818, 410], [812, 424], None, None, None, None, None, None, None, [774, 535], [773, 537], [768, 550], [761, 572], [754, 592], [750, 615], [748, 624], [748, 624], [739, 652], [733, 674], [728, 698], [727, 718], [718, 733], [718, 733], [714, 732], [709, 729], [705, 728], [702, 729], [694, 728], [696, 728], [692, 728], [688, 730], [684, 730], [678, 731], [675, 734], [675, 734], [673, 737], [667, 741], [664, 743], [659, 749], [653, 755], [653, 755], [650, 759], [647, 765], [642, 774], [636, 780], [633, 786], [633, 787], [630, 796], [625, 804], [629, 769], [634, 737], [633, 718], [633, 718], [640, 697], [644, 657], [649, 640], [651, 616], [655, 592], [654, 591], [654, 578], [656, 560], [659, 544], [662, 525], None, None, None, [668, 482], None, None, [675, 448], [675, 448], None, [677, 427], [677, 419], [678, 410], [678, 404], [678, 404], [679, 394], [682, 394], [682, 385], [682, 380], [683, 374], [683, 374], [684, 370], [684, 367], [684, 364], [685, 361], [686, 359], [686, 359], [686, 357], [686, 356], [687, 353], [686, 353], [687, 352], [687, 352], [688, 350], [687, 339], [685, 329], [687, 318], [686, 309], [687, 309], [681, 300], [686, 293], [688, 283], [689, 273], [688, 268], [689, 270], [689, 261], [688, 256], [688, 250], [689, 243], [688, 238], [688, 238], [690, 237], [690, 231], [690, 228], [691, 226], [696, 227], [699, 226], [705, 227], None, None, None, None, None, None, None, None, None, [758, 234], [758, 234], [762, 239], [769, 241], [775, 243], [780, 246], [787, 250], [787, 250], [793, 253], [800, 256], [806, 261], [812, 263], [820, 266], [820, 266], [826, 271], [832, 274], [840, 279], [845, 283], [851, 289], [852, 289], [858, 296], [866, 299], [874, 306], [879, 312], [888, 318], [888, 318], [893, 323], [900, 330], [908, 338], [914, 344], [922, 350], [922, 350], [928, 360], [937, 367], [945, 378], [950, 384], None, None, [967, 402], [974, 411], [980, 421], [989, 428], None, None, None, None, None, None, None, None, None, [1054, 518], [1061, 533], [1066, 543], [1076, 557], [1077, 558], [1087, 569], [1093, 585], [1101, 601], [1110, 614], [1119, 629], [1119, 629], [1128, 642], [1136, 662], None, None, None, None, None, None, None, None, None, None, None, [1211, 723], [1216, 718], [1220, 719], [1226, 719], [1227, 718], [1232, 718], [1238, 719], [1243, 721], [1252, 721], [1256, 721], [1256, 721], [1262, 725], [1268, 728], [1273, 731], [1280, 734], [1286, 737], [1286, 737], [1293, 742], [1298, 746], [1305, 749], None, [1299, 691], [1299, 691], [1295, 668], [1295, 649], [1288, 623], [1285, 597], [1280, 571], [1280, 571], [1277, 552], None, None, None, None, None, None, None, None, [1254, 430], [1249, 417], [1249, 417], [1246, 409], [1242, 399], [1239, 392], [1237, 384], [1234, 379], [1234, 379], [1231, 373], [1230, 367], [1227, 364], [1225, 361], [1222, 358], [1222, 358], [1220, 356], [1219, 353], [1214, 353], [1212, 352], [1209, 350], [1209, 350], [1207, 351], [1206, 350], [1204, 352], [1202, 350], [1202, 335], [1202, 335], [1200, 324], [1198, 313], None, [1194, 292], [1195, 281], [1195, 281], [1194, 273], [1191, 263], [1191, 256], [1191, 247], [1190, 239], [1190, 239], [1189, 234], [1189, 228], [1189, 221], [1188, 216], [1186, 213], [1187, 212], [1184, 209], [1183, 205], [1182, 200], [1181, 195], [1181, 195], [1181, 195], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [908, 212], [906, 222], [901, 235], [900, 235], [898, 249], [893, 263], [888, 276], [883, 292], [878, 303], [879, 303], [876, 321], [857, 673], [866, 349], [863, 365], [859, 384], [859, 384], [855, 398], [851, 411], [849, 412], [845, 413], [841, 414], [841, 414], [837, 414], [835, 413], [830, 415], [828, 416], [825, 416], [825, 416], [821, 419], [817, 421], [816, 424], [813, 425], [809, 423], [809, 423], [805, 405], [804, 378], [803, 360], [799, 340], [800, 324], [800, 324], [838, 625], None, [793, 274], [791, 259], [788, 248], [788, 248], [787, 235], [783, 224], [783, 214], [781, 204], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [856, 617], [857, 617], [860, 617], None, None, None, None, None, None, None, None, None, None, [808, 210], [814, 226], [818, 239], [820, 238], [824, 250], [830, 260], [836, 275], [839, 286], None, None, [852, 321], [858, 334], [860, 350], [868, 366], [875, 383], [875, 383], [880, 402], [885, 418], None, None, None, None, None, None, None, None, None, None, None, None, None, [975, 558], [991, 561], [991, 561], None, [997, 579], None, None, None, None, None, [1017, 577], None, [1028, 565], [942, 433], [942, 433], [943, 424], [944, 420], [946, 412], [949, 407], [948, 401], [948, 401], [948, 397], [949, 391], [950, 391], [952, 385], [954, 381], [954, 381], [954, 378], [954, 375], [955, 372], [956, 371], [956, 368], [956, 368], [956, 368], [960, 365], [959, 363], [960, 364], [961, 364], [961, 364], [963, 363], [963, 364], [962, 364], [965, 365], [967, 367], [967, 367], [967, 367], [966, 370], [966, 371], [968, 374], [969, 377], [969, 377], [969, 381], [969, 384], [969, 388], None, [972, 394], [972, 394], [971, 399], [972, 404], [973, 409], [972, 414], [973, 418], [973, 418], [973, 424], [973, 430], [972, 437], None, None, None, None, None, None, None, None, None, [973, 430], [974, 423], [974, 416], [974, 411], [974, 407], [974, 407], [973, 403], [972, 396], None, [971, 389], [973, 385], [973, 385], [972, 384], [973, 379], [972, 377], [971, 374], [972, 373], [973, 373], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [957, 372], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [946, 412], [941, 413], [935, 414], [936, 414], [929, 414], [922, 413], [914, 414], [908, 416], [902, 417], [902, 417], [894, 418], [889, 422], [882, 424], [873, 425], [867, 428], [867, 428], [861, 436], [853, 437], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [743, 536], [738, 543], [732, 552], [732, 545], [732, 545], [734, 532], None, None, [701, 583], None, None, None, None, None, [766, 425], [770, 413], [769, 414], [774, 405], [776, 392], [780, 384], [783, 374], [788, 363], [788, 363], [791, 354], [794, 346], [799, 339], [802, 331], [805, 324], [805, 324], [808, 319], [813, 312], [814, 304], [818, 299], [824, 295], [824, 295], [828, 288], [828, 285], [832, 280], [835, 276], [838, 274], [838, 274], [842, 269], [846, 266], [848, 265], [852, 262], [855, 260], [855, 260], [857, 259], [861, 256], None, [868, 253], None, None, None, None, None, None, None, None, None, None, None, [1081, 594], [1091, 586], [1091, 586], [1103, 573], [1113, 564], [1126, 553], [1140, 542], [1150, 533], [1150, 533], [1163, 523], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]

这些点在video上。

  • 场角4分,网下2分
    upperLeft = (577, 303)
    upperRight = (1333, 303)
    bottomLeft = (366, 857)
    bottomRight = (1562, 857)
    netLeft = (495, 517)
    netRight = (1422, 517)

asd

  • 球场尺寸为23.7×10.97米

我被告知,这些信息是不够的,因此,我必须找到球的三维轨迹。用这个paper作为我的主要指南,我试图做到这一点。
然而,我在摄像机校准方面遇到了困难(第2.1节),我不知道如何在这张照片上获得球场的3D投影/模型 enter image description here

我希望我清楚地描述了问题和手头的信息。如有任何指示、建议或问题,我们将不胜感激


Tags: projectnone信息formatvideo地方pointsupperright
1条回答
网友
1楼 · 发布于 2024-06-02 15:41:51

有两个独立的问题可以回答:

  1. 给定球反弹的像素位置,以及球场上6个已知点的像素位置,您可以估计球反弹的3D位置吗?回答:是的。这是因为法庭(如果是标准法庭)具有已知的尺寸,这些尺寸决定了法庭平面和图像之间单应的比例。最简单的方法是使用张的摄像机校准算法(如OpenCv中实现的)的1-image最小版本来估计焦距以及摄像机相对于6个球场点的位置和方向。校准摄影机后,您所要做的就是将三维光线与Z=0处的平面相交,以反向投影球反弹点
  2. 根据对球轨迹的观察,您能否估计反弹的像素位置(如果存在)?答:视情况而定。这纯粹是一个图像处理问题,归结起来就是在观测到的球的速度矢量中寻找时间上的不连续性。速度估计是出了名的嘈杂,部分取决于摄像机相对于球轨迹的方向

相关问题 更多 >