Hi, In mobilenet-yolov4-keras, inappropriate dependency versioning constraints can cause risks.
Below are the dependencies and version constraints that the project is using
scipy==1.2.1
numpy==1.17.0
Keras==2.1.5
matplotlib==3.1.2
opencv_python==4.1.2.30
tensorflow_gpu==1.13.2
tqdm==4.60.0
Pillow==8.2.0
h5py==2.10.0
The version constraint == will introduce the risk of dependency conflicts because the scope of dependencies is too strict.
The version constraint No Upper Bound and * will introduce the risk of the missing API Error because the latest version of the dependencies may remove some APIs.
After further analysis, in this project,
The version constraint of dependency matplotlib can be changed to >=1.3.0,<=3.0.3.
The version constraint of dependency tqdm can be changed to >=4.36.0,<=4.64.0.
The version constraint of dependency Pillow can be changed to ==9.2.0.
The version constraint of dependency Pillow can be changed to >=2.0.0,<=9.1.1.
The above modification suggestions can reduce the dependency conflicts as much as possible,
and introduce the latest version as much as possible without calling Error in the projects.
The invocation of the current project includes all the following methods.
The calling methods from the matplotlib
matplotlib.use
The calling methods from the tqdm
tqdm.tqdm
The calling methods from the Pillow
PIL.Image.fromarray
PIL.ImageFont.truetype
PIL.Image.open
PIL.Image.new
The calling methods from the all methods
numpy.logspace
numpy.uint8
xml.endswith
xml.etree.ElementTree.parse.getroot
ghostnet.Ghostnet
image.resize.transpose
_squeeze
matplotlib.pyplot.gca
self.get_random_data_with_Mosaic
keras.backend.concatenate
kmeans
isinstance
line.os.path.basename.split
total_xml.append
self.yolo_model.load_weights
sigmoid
utils_map.get_coco_map
keras.layers.normalization.BatchNormalization
keras.layers.BatchNormalization
inputs.correct_pad.ZeroPadding2D
utils.utils_map.get_map
boxes_per_image.append
PIL.Image.fromarray
tensorflow.image.non_max_suppression
numpy.where
glob.glob
ValueError
utils.utils_bbox.DecodeBox
utils.callbacks.EvalCallback
format
cv2.VideoCapture.release
_activation
keras.layers.GlobalAveragePooling2D
os.path.splitext
cv2.resize
json.dump
prefix.channel_axis.BatchNormalization
numpy.logical_and.split
matplotlib.pyplot.gca.set_xlim
image_set.year.VOCdevkit_path.os.path.join.open.read
glob.glob1
matplotlib.pyplot.fill_between
gt_match.split
cv2.VideoCapture.read
img_name.lower
keras.layers.Activation
numpy.random.rand
hard_sigmoid.Activation
det_counter_per_class.keys
nets.yolo.yolo_body.load_weights
name.layers.Activation
matplotlib.pyplot.gcf.set_figheight
prefix.reduced_ch.Conv2D
functools.reduce
images.append
self.epoches.append
open.close
keras.layers.Input
image.crop.save
block_id.strides.depth_multiplier.DepthwiseConv2D
numpy.random.shuffle
matplotlib.pyplot.gcf.get_figheight
utils.callbacks.ParallelModelCheckpoint
json.dumps
utils.dataloader.YoloDatasets
classes.index
image_set.year.VOCdevkit_path.os.path.join.open.read.strip
_ghost_module
l.get_input_shape_at
fig.add_subplot.add_patch
open
numpy.median
matplotlib.pyplot.margins
os.walk
setattr
img_name.replace
DarknetConv2D
matplotlib.pyplot.plot
random.sample.append
keras.backend.max
self.ParallelModelCheckpoint.super.__init__
matplotlib.pyplot.yticks
cv2.getTextSize
numpy.tile
pycocotools.coco.COCO.loadImgs
box_datas.append
mobilenet_v3.MobileNetV3
keras.backend.cast
keras.backend.tile
tensorflow.math.atan2
image_set.year.VOCdevkit_path.os.path.join.open.read.strip.split
annotation_line.split
int
image.size.np.floor.astype
utils_bbox.DecodeBox
utils.utils.preprocess_input
keras.callbacks.ModelCheckpoint
os.listdir
VOCdevkit_path.os.path.join.open.read.strip.split
utils.utils_bbox.get_anchors_and_decode
nets.yolo.yolo_body
prefix.x.correct_pad.ZeroPadding2D
sub_block_id.str.block_id.str.BatchNormalization
json.load
results_file.write
pycocotools.cocoeval.COCOeval.evaluate
VOCdevkit_path.os.path.join.open.read
self.sess.close
numpy.zeros.append
os.path.basename
self.loss_plot
mAP_YOLO
os.path.normpath
sigmoid.append
keras.backend.get_session
self.ParallelModelCheckpoint.super.set_model
self.model_body.get_input_at
dense_block
super
keras.backend.ones_like
matplotlib.pyplot.subplots_adjust
hard_swish.Activation
_depthwise_conv_block
bounding_boxes.sort
PIL.ImageDraw.Draw
cv2.split
utils.utils.show_config
self.preprocess_true_boxes
bboxes.extend
matplotlib.pyplot.legend
self.merge_bboxes
keras.backend.round
tensorflow.Print
f.write
cv2.VideoWriter
matplotlib.pyplot.axis
numpy.empty
block_id.pointwise_conv_filters.Conv2D
self.rand
fig.canvas.get_renderer
nets.yolo.yolo_body.summary
numpy.array.paste
load_data
numpy.clip
txt_file.split
l.grid_shapes.t.b.true_boxes.np.floor.astype
keras.optimizers.Adam
functools.partial
adjust_axes
operator.itemgetter
os.path.join
matplotlib.pyplot.text.get_window_extent
matplotlib.pyplot.savefig
str.BatchNormalization
weight_decay.pointwise_conv_filters.DarknetConv2D
round
numpy.exp.append
name.reduction.x.backend.int_shape.int.layers.Conv2D
keras.callbacks.EarlyStopping
matplotlib.pyplot.imshow
keras.models.Model.summary
keras.layers.Lambda
utils.utils.resize_image
conv_name_base.filters3.Conv2D
keras.layers.ZeroPadding2D
os.path.isfile
numpy.argmax
keras.backend.placeholder
matplotlib.pyplot.gcf.savefig
colorsys.hsv_to_rgb
self.maps.append
tensorflow.ones_like
keras.initializers.random_normal
name.layers.AveragePooling2D
keras.layers.UpSampling2D.weight_decay.alpha.int.DarknetConv2D_BN_Leaky.compose
annotation_line.split.split
str
nets.yolo.get_train_model
gt_counter_per_class.keys
math.exp
conv_name_base.strides.filters3.Conv2D
top.np.floor.astype
densenet.DenseNet
box.split
utils.resize_image
bounding_boxes.append
sub_block_id.str.block_id.str.random_normal.hidden_channel.Conv2D
line.split
keras.backend.minimum
utils.utils.cvtColor.crop
utils.utils.get_classes
prefix.pointwise_filters.Conv2D
keras.layers.Add
part.str.sub_block_id.str.block_id.str.random_normal.ratio.dw_size.DepthwiseConv2D
results.append
keras.backend.get_value
self.get_map_txt
keras.initializers.random_normal.update
glob.glob.sort
keras.backend.relu
box_iou
range
keras.layers.Multiply
keras.backend.constant
image_id.VOCdevkit_path.os.path.join.ET.parse.getroot
PIL.ImageFont.truetype
conv_name_base.filters1.Conv2D
keras.optimizers.SGD
cv2.VideoWriter_fourcc
matplotlib.pyplot.text
keras.backend.int_shape
matplotlib.pyplot.xlabel
weight_decay.num_classes.anchors_mask.len.DarknetConv2D
numpy.floor
self.WarmUpCosineDecayScheduler.super.__init__
near.last_clu.all
yolo.YOLO
block_id.relu6.Activation
detection.split
keras.backend.exp
file_lines_to_list
fp_sorted.append
len
numpy.reshape
prefix.relu6.Activation
already_seen_classes.append
obj.findtext
dict
i.j.List1.rjust
new_f.write
matplotlib.pyplot.show
keras.callbacks.LearningRateScheduler
conv_block
i_list.append
tensorflow.cast
numpy.insert
matplotlib.pyplot.gca.get_xlim
class_names.index
cv2.imshow
prec.insert
pycocotools.coco.COCO
strides.kernel.filters.Conv2D
numpy.minimum
tensorflow.logging.set_verbosity
VOCdevkit_path.os.path.join.open.read.strip
prefix.exp_size.Conv2D
image_id.VOCdevkit_path.os.path.join.ET.parse.getroot.findall
get_anchors_and_decode
cv2.cvtColor
pow
yolo.detect_image.append
transition_block
cv2.VideoCapture
obj.find
image.resize.resize
label.encode.encode
matplotlib.pyplot.gcf.tight_layout
keras.backend.reshape
convert_annotation
nets.yolo_training.get_lr_scheduler
numpy.max
matplotlib.pyplot.barh
pycocotools.coco.COCO.loadRes
cv2.destroyAllWindows
format.Add
matplotlib.pyplot.figure
_smooth_labels
numpy.shape
keras.backend.clear_session
obj.split
no_bias_kwargs.update
image.resize.convert
shutil.rmtree
keras.backend.min
self.losses.append
PIL.Image.open.save
keras.backend.learning_phase
_make_divisible.Conv2D
gamma.alpha.focal_loss.label_smoothing.num_classes.input_shape.input_shape.num_classes.anchors_mask.anchors.input_shape.yolo_loss.Lambda
l.get_output_shape_at
self.model_body.get_output_at
matplotlib.pyplot.gcf
format.BatchNormalization
anchors.np.array.reshape
random.shuffle
yolo.YOLO.detect_image
matplotlib.pyplot.close
yolo.YOLO.get_FPS
MobileNetV1
prefix.out_channels.Conv2D
nets.yolo.get_train_model.fit_generator
keras.backend.concatenate.append
math.ceil
img_name.lower.endswith
rec.append
str.astype
format.Activation
utils_map.get_map
block_id.BatchNormalization
keras.backend.expand_dims.stack
matplotlib.pyplot.cla
numpy.random.uniform
pycocotools.cocoeval.COCOeval.accumulate
part.str.sub_block_id.str.block_id.str.BatchNormalization
numpy.expand_dims
weight_decay.num_filters.DarknetConv2D_BN_Leaky
matplotlib.pyplot.gca.set_ylim
numpy.arange
pycocotools.cocoeval.COCOeval
make_five_convs
keras.layers.MaxPooling2D
keras.backend.set_value
prec.append
preprocess_gt
conv_name_base.kernel_size.filters2.Conv2D
c.strip
matplotlib.pyplot.gcf.get_figwidth
numpy.logical_and
identity_block
numpy.sum
keras.layers.Reshape
r.x.astype
numpy.zeros
sub_block_id.str.block_id.str.random_normal.ratio.hidden_channel._make_divisible.Conv2D
tmp_box.append
resnet50.ResNet50
numpy.argsort
self.ExponentDecayScheduler.super.__init__
keras.backend.sigmoid
os.path.abspath
_make_divisible
pycocotools.cocoeval.COCOeval.summarize
yolo.detect_image.save
kwargs.get
sorted
log_average_miss_rate
PIL.Image.open
format.Multiply
utils.utils.net_flops
keras.layers.add
print
utils.utils_map.get_coco_map
tensorflow.TensorArray
cv2.merge
_ghost_bottleneck
voc_ap
cv2.LUT
self.yolo_model.predict
cv2.putText
keras.initializers.random_normal.Conv2D
numpy.mean
keras.backend.image_data_format
zip
PIL.ImageDraw.Draw.textsize
numpy.log
scipy.signal.savgol_filter
numpy.concatenate
os.makedirs
keras.backend.maximum
vgg.VGG16
image.resize.paste
time.time
utils.utils.cvtColor
matplotlib.pyplot.scatter
l.self.anchors_mask.index
self.sess.run
x.strip
xml.etree.ElementTree.parse.iter
yolo_correct_boxes
tensorflow.sigmoid
conv_name_base.strides.filters1.Conv2D
matplotlib.pyplot.xlim
prefix.stride.kernel_size.DepthwiseConv2D
numpy.array
tensorflow.shape
tuple
keras.backend.epsilon
bool
f.readline
PIL.Image.new
numpy.random.normal
numpy.float64
box_ciou
cas_iou
tqdm.tqdm
self.__dict__.update
self.generate
matplotlib.pyplot.gca.invert_yaxis
f
tensorflow.while_loop
_inverted_res_block
annotations.append
matplotlib.pyplot.ylabel
anchors.np.array.reshape.split
fig.canvas.set_window_title
error
matplotlib.pyplot.title
t.b.true_boxes.astype
input
utils.callbacks.LossHistory
yolo.YOLO.get_map_txt
tp_sorted.append
xml.etree.ElementTree.parse.findtext
correct_pad
collections.defaultdict.keys
kwargs.items
obj.find.find
datetime.datetime.now
numpy.array.append
mAP_YOLO.detect_image
name.layers.Concatenate
merge_bbox.append
math.cos
tensorflow.maximum
keras.backend.expand_dims.write
pycocotools.coco.COCO.getCatIds
weight_decay.l2.strides.depth_multiplier.random_normal.DepthwiseConv2D
logs.get
self.EvalCallback.super.__init__
mobilenet_v2.MobileNetV2
utils.utils.compose
datetime.datetime.strftime
sub_block_id.str.block_id.str.random_normal.strides.kernel.DepthwiseConv2D
numpy.maximum
categories.append
draw_text_in_image
enumerate
float
keras.layers.DepthwiseConv2D
matplotlib.pyplot.grid
max
cv2.copyMakeBorder
bottom.np.floor.astype
mobilenet_v1.MobileNetV1
keras.backend.dtype
yolo.YOLO.detect_heatmap
cv2.copyMakeBorder.copy
cv2.imread
yolo.detect_image.show
cv2.VideoCapture.get
prefix.in_channels.expansion.Conv2D
list
numpy.random.choice
os.path.exists
keras.callbacks.TensorBoard
utils.cvtColor
exp.slices.Lambda
collections.defaultdict
avg_iou
cocoGt.imgToAnns.keys
PIL.ImageDraw.Draw.text
keras.layers.AveragePooling2D
relu6.Activation
min
cv2.VideoWriter.release
random.seed
draw_plot_func
utils.preprocess_input
keras.layers.Conv2D
utils.utils.get_anchors
keras.backend.sum
keras.backend.gather
part.str.sub_block_id.str.block_id.str.random_normal.stride.kernel_size.output_channels.Conv2D
os.path.expanduser.endswith
name.layers.BatchNormalization
tensorflow.boolean_mask
keras.backend.binary_crossentropy
keras.backend.square
num_classes.true_boxes.all
hard_swish
keras.backend.expand_dims
keras.utils.multi_gpu_utils.multi_gpu_model
cv2.rectangle
image_datas.append
cv2.imwrite
os.path.expanduser
prefix.stride.stride.DepthwiseConv2D
map
open.write
_bneck
right.np.floor.astype
dictionary.items
matplotlib.pyplot.Rectangle
DarknetConv2D_BN_Leaky
format.GlobalAveragePooling2D
keras.backend.shape
AssertionError
matplotlib.pyplot.figure.add_subplot
cv2.waitKey
sys.exit
g
prefix.exp_size.Reshape
random.sample
weight_decay.alpha.int.DarknetConv2D_BN_Leaky
xml.etree.ElementTree.parse
keras.regularizers.l2
sub_block_id.str.block_id.str.random_normal.output_channel.Conv2D
matplotlib.use
keras.layers.UpSampling2D
self.get_random_data
join
self.val_loss.append
r.x.np.clip.astype
_conv_block
cv2.VideoWriter.write
tree.getroot.iter
self.get_random_data_with_MixUp
keras.backend.arange
numpy.random.seed
keras.models.Model
functools.wraps
printTable
PIL.ImageDraw.Draw.rectangle
matplotlib.pyplot.ylim
rec.insert
name.growth_rate.layers.Conv2D
keras.layers.Concatenate
name.name_box_id.append
left.np.floor.astype
net_flops
numpy.argmin
f.readlines
preprocess_dr
numpy.exp
nets.yolo.get_train_model.compile
keras.backend.floatx
@developer
Could please help me check this issue?
May I pull a request to fix it?
Thank you very much.