Indeed the size is in bytes. lsof doesn't report physical size for objects that don't have one (for example sockets, pipes, block devices and so on). In some cases it reports the size of the I/O buffers or the byte offset. Despite these (in some degree) obscure concepts, you can force to report the true size (where available) using the -s option. Said this, how did you compute the total size?
I would end up with something like this:
Code:
lsof -s /opt | awk 'NR > 1{total+=$7} END{print total}'
provided the SIZE is the 7th column in the lsof's output.