Fire detection is the most important task to prevent early fire occurrence. Flame detection and identification is an important task of fire detection. Using traditional image processing method to detect flames can not achieve better accuracy and speed. To improve the accuracy of flame detection, a flame detection algorithm based on YOLOv4 is proposed by using target detection algorithm to detect flame. Using CSPDarkNet53 as the backbone network, SPP and PANET structures enhance the feature extraction network and Mosaic data enhancement. Based on the experimental results of detecting flame datasets containing more than 2000 high resolution flame images, the average accuracy is 91.68%, and the detection speed is 39.88FPS. Its mAP value is 70.66%, which is 10.28% higher than YOLOv4-Tiny model. It can detect flames more accurately and has good versatility and robustness.