Packers are used to reduce the size of an executable, originally to speed up transfers. A packed executable is smaller and equivalent to the original, but totally different on a binary scale. This allows packed binaries to bypass simple signature-based AV. As modern AV often uses other techniques in addition to signature matching, just using packers like UPX will most likely not bypass AV detection.