1. A method of identifying a plurality of barcodes associated with a plurality of respective product labels, the product labels including one or more barcodes and other non-barcode related product label information, the method comprising: an image capturing device capturing an image of a plurality of product labels and storing the captured image in a memory operatively associated with the image capturing device; a processor operatively associated with the memory detecting and localizing a plurality of barcode candidate regions within the captured image of the plurality of product labels; the processor cropping the detected and localized plurality of barcode candidate regions to generate one or more respective sub-images of the captured image including images of the one or more barcode candidate regions, the sub-images including a region of the captured image defined by the size of a detected barcode within the respective barcode candidate region and excluding substantially all of the other product label information associated with the respective detected barcode; the processor processing each sub-image using two or more independent image quality improvement processes to generate modified versions of each of the plurality of barcode candidate regions and respective detected barcodes within the respective barcode candidate regions; the processor processing the modified versions of each of the plurality of barcode candidate regions using a binary process to decode readable barcodes included in each of the modified versions of each of the candidate barcode regions to generate a numerical representation of the readable barcodes and identifying barcode candidate regions including barcodes nondecodable using the binary process; and for each of the plurality of barcode candidate regions including a nondecodable barcode, the processor processing the captured image of the plurality of product labels to determine auxiliary product information regions including a greater number of pixels than the respective barcode candidate region including a nondecodable barcode; the processor determining a price-tag layout associated with each of the auxiliary product information regions by matching the auxiliary product information regions with one or more reference price-tag templates including the physical layout of the other non-barcode related product information associated with each price-tag template; the processor extracting the other non-barcode related product label information from the auxiliary product information regions based on a matched price-tag template; and the processor determining a numerical representation of the nondecodable barcodes associated with each auxiliary product information region based on the extracted other non-barcode related product label information of the respective auxiliary product information region.