dataset_info = dict(
dataset_name='apple_calyx_coco',
paper_info=dict(
author='Lin, Tsung-Yi and Maire, Michael and '
'Belongie, Serge and Hays, James and '
'Perona, Pietro and Ramanan, Deva and '
r'Doll{\'a}r, Piotr and Zitnick, C Lawrence',
title='Microsoft coco: Common objects in context',
container='European conference on computer vision',
year='2014',
homepage='http://cocodataset.org/',
),
keypoint_info={
0:
dict(name='calyx', id=0, color=[0,0,255], swap=''),
1:
dict(name='stem', id=1, color=[255,0,0], swap='')
},
flip_pairs = [0,1],
flip_index = [0,1],
skeleton_info={},
joint_weights=[1.] * 2,
sigmas=[0.2, 0.2])
Goal: I'm trying to predict 2 keypoints with two classes(meaning one keypoint for each classes) on one instance of object in a single image.
Problem: The AP and AR of the model decreases while the loss decreases, which doesn''t seem right. No key points were predicted with the latest checkpoint. The best checkpoint (300 epoch) was able to predict some keypoints, with very low keypoint scores (keypoint_scores: array([[ 0.01671034, -0.00024851]]).
Extra information: The dataset shouldn't be the problem as the same data was used to trained a Bottom-up Associative Embedding model with the previous 0.x version and the results were good.
It might be helpful to use dataset browser to visualize the data and check if the annotation and label are reasonable. The heatmap size of 24 might be too small for sigma 2 and 4.
Prerequisite
Environment
python -c "from mmpose.utils import collect_env; print(collect_env())"
OrderedDict([('sys.platform', 'linux'), ('Python', '3.8.18 | packaged by conda-forge | (default, Dec 23 2023, 17:21:28) [GCC 12.3.0]'), ('CUDA available', True), ('numpy_random_seed', 2147483648), ('GPU 0', 'NVIDIA TITAN X (Pascal)'), ('CUDA_HOME', '/usr/local/cuda-11.8'), ('NVCC', 'Cuda compilation tools, release 11.8, V11.8.89'), ('GCC', 'gcc (Ubuntu 8.4.0-1ubuntu1~18.04) 8.4.0'), ('PyTorch', '2.0.1'), ('PyTorch compiling details', 'PyTorch built with:\n - GCC 9.3\n - C++ Version: 201703\n - Intel(R) oneAPI Math Kernel Library Version 2023.2-Product Build 20230613 for Intel(R) 64 architecture applications\n - Intel(R) MKL-DNN v2.7.3 (Git Hash 6dbeffbae1f23cbbeae17adb7b5b13f1f37c080e)\n - OpenMP 201511 (a.k.a. OpenMP 4.5)\n - LAPACK is enabled (usually provided by MKL)\n - NNPACK is enabled\n - CPU capability usage: AVX2\n - CUDA Runtime 11.8\n - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_90,code=sm_90;-gencode;arch=compute_37,code=compute_37\n - CuDNN 8.7\n - Magma 2.6.1\n - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.8, CUDNN_VERSION=8.7.0, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -D_GLIBCXX_USE_CXX11_ABI=0 -fabi-version=11 -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO -DLIBKINETO_NOROCTRACER -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -O2 -fPIC -Wall -Wextra -Werror=return-type -Werror=non-virtual-dtor -Werror=bool-operation -Wnarrowing -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wunused-local-typedefs -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Werror=cast-function-type -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_DISABLE_GPU_ASSERTS=ON, TORCH_VERSION=2.0.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF, \n'), ('TorchVision', '0.15.2'), ('OpenCV', '4.9.0'), ('MMEngine', '0.10.2'), ('MMPose', '1.3.1+5a3be94')])pip list | grep mm
comm 0.2.1 diagnostic_common_diagnostics 1.9.7 mmcv 2.1.0 mmdeploy 1.3.1 /home/lmga-titanx/openmmlab/mmdeploy mmdeploy-runtime 1.3.1 mmdeploy-runtime-gpu 1.3.1 mmdet 3.2.0 mmengine 0.10.2 mmpose 1.3.1 /home/lmga-titanx/openmmlab/mmpose qt-gui-py-common 0.4.2 rqt_py_common 0.5.3Reproduces the problem - code sample
My config file:
mmpose/configs/base/datasets/custom_2.py:
Reproduces the problem - command or script
python tools/train.py /home/lmga-titanx/openmmlab/mmpose/configs/apple/DEKR/coco/dekr_hrnet-w32_8xb10-140e_coco-512x512.py
Reproduces the problem - error message
Additional information
Goal: I'm trying to predict 2 keypoints with two classes(meaning one keypoint for each classes) on one instance of object in a single image.
Problem: The AP and AR of the model decreases while the loss decreases, which doesn''t seem right. No key points were predicted with the latest checkpoint. The best checkpoint (300 epoch) was able to predict some keypoints, with very low keypoint scores (keypoint_scores: array([[ 0.01671034, -0.00024851]]).
Extra information: The dataset shouldn't be the problem as the same data was used to trained a Bottom-up Associative Embedding model with the previous 0.x version and the results were good.